<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; JScript: Метод GetData в WinSock Control]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6694&amp;type=atom" />
	<updated>2012-01-29T10:15:10Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6694</id>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=56095#p56095" />
			<content type="html"><![CDATA[<p><strong>smaharbA</strong>, практически идеальное решение, большое спасибо. Кусок на VBScript это, конечно, не очень здорово, но всё-таки приемлемо.</p><p>P.S. Прошу прощения за большую задержку, сдавал криптографию, не было времени посетить форум.</p>]]></content>
			<author>
				<name><![CDATA[Himmler]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25902</uri>
			</author>
			<updated>2012-01-29T10:15:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=56095#p56095</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55964#p55964" />
			<content type="html"><![CDATA[<p>про хта и события активиксов<br /></p><div class="codebox"><pre><code>&lt;html&gt;
&lt;script type=&#039;text/vbscript&#039;&gt;
    function xgetdata(x)
        dim ret
        x.GetData ret, 8
        xgetdata=ret
    end function
&lt;/script&gt;

&lt;script type=&#039;text/javascript&#039;&gt;
var Winsock;
window.onload=function()
{
    function mswinsock::Connect()
    {
        Winsock.SendData(&quot;Привет, сервер!&quot;);
    }

    function mswinsock::DataArrival(bytTotal)
    {
        var str=xgetdata(Winsock);
        document.getElementById(&#039;get&#039;).innerHTML=&quot;[Клиент] Получено: &quot; + str;
        Winsock.Close();
    }

    function mswinsock::SendComplete()
    {
    }

    Winsock = document.getElementById(&quot;mswinsock&quot;).object;
    Winsock.Connect(&quot;127.0.0.1&quot;,6789);
}
&lt;/script&gt;
&lt;body&gt;
&lt;object id=&#039;mswinsock&#039; classid=&quot;clsid:248DD896-BB45-11CF-9ABC-0080C7E7B78D&quot;&gt;
&lt;/object&gt;
&lt;div id=&#039;get&#039;&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[smaharbA]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2911</uri>
			</author>
			<updated>2012-01-24T07:05:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55964#p55964</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55943#p55943" />
			<content type="html"><![CDATA[<p><strong>Himmler</strong>, коллега, я Вам код привел, который позволяет не только работать с винсоком, но и с HTA с возможностью транслирования объекта Wscript.&nbsp; Предлагаю еще раз обратить внимание на код. Что касается WSC считаю нецелесообразным его использование.</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2012-01-23T18:03:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55943#p55943</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55885#p55885" />
			<content type="html"><![CDATA[<p><strong>Himmler</strong>, соберите просто свой WSC внутри с обработкой событий винсока. Просто и удобно. И работать будет и в VBS и в JS. Да и подключать события потом проще. А вообще переходите лучше на VBS. )</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2012-01-22T09:25:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55885#p55885</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55858#p55858" />
			<content type="html"><![CDATA[<p>Так, опять упёрся. Насколько я понимаю, ввиду отсутствия возможности вызова внутри hta метода WScript.ConnectObject() повесить свои обработчики событий на Winsock не получится, и придётся делать через одно место, вроде как <a href="http://forum.script-coding.com/viewtopic.php?id=3707">здесь</a>.<br />Если всё действительно так коряво, то нет ли альтернативы MSWinsock.Winsock ? Ибо такое извращение это уже слишком.</p>]]></content>
			<author>
				<name><![CDATA[Himmler]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25902</uri>
			</author>
			<updated>2012-01-21T19:24:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55858#p55858</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55840#p55840" />
			<content type="html"><![CDATA[<p>Досадно, конечно, но лучше уж криво, чем никак. Значит будет с куском VBScript.</p>]]></content>
			<author>
				<name><![CDATA[Himmler]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25902</uri>
			</author>
			<updated>2012-01-20T17:27:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55840#p55840</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55830#p55830" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>JSman пишет:</cite><blockquote><p>Поднял старую темку из архива:</p></blockquote></div><p>Поднял тему из архива в Разработку. Теперь она доступна и участникам.</p><div class="quotebox"><cite>JSman пишет:</cite><blockquote><p>Видно поленился добавлять в коллекцию.</p></blockquote></div><p>Есть повод <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-01-20T13:38:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55830#p55830</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55829#p55829" />
			<content type="html"><![CDATA[<p>Приветствую. Поднял старую темку из архива:<br /><a href="http://forum.script-coding.com/viewtopic.php?id=4278">JScript: Оконное приложение с графическими ресурсами в одном JS-файле.</a> Видно поленился добавлять в коллекцию.<br />В ней как раз демонстрируется работа с WinSock из JScript. Что касается причин такого поведения, то лучше всего их разъяснил уважаемый коллега <strong>YMP</strong>.<br /></p><div class="codebox"><pre><code>var VB = new ActiveXObject(&quot;htmlfile&quot;).parentWindow;    
VB.document.write(&quot;&lt;script language=&#039;VBScript&#039;&gt;Function GetData(Obj, data, num, bytTotal)\nObj.GetData data, num, bytTotal\nGetData = data\nEnd Function&lt;/script&gt;&quot;);
var 
    Port = parseInt(Math.random()*100000)% 20000 +9000,
    MainSocket = WScript.CreateObject(&quot;MSWinsock.Winsock.1&quot;,&quot;MainSocket_&quot;),
    Sockets = {};
    MainSocket.LocalPort = Port;
    MainSocket.Listen();
    
Function.prototype.GetResource = function (ResourceName)
{
    if (!this.Resources) 
    {
        var UnNamedResourceIndex = 0, _this = this;
        this.Resources = {};
        function f(match, resType, Content){
            _this.Resources[(resType==&quot;[[&quot;)?UnNamedResourceIndex++:resType.slice(1,-1)] = Content;}
        this.toString().replace(/\/\*(\[(?:[^\[]+)?\[)((?:[\r\n]|.)*?)\]\]\*\//gi, f);
    }
    return this.Resources[ResourceName];
}

function GetResource(ResourceName) {
    return arguments.callee.caller.GetResource(ResourceName)}
    
function DecodeBase64(textBase64)
{
var Element = new ActiveXObject(&quot;MSXml2.DOMDocument&quot;).createElement(&quot;tmp&quot;);
    Element.dataType = &quot;bin.base64&quot;;
    Element.text = textBase64;
    return Element.nodeTypedValue;
}

function HTTPGetFileName(Data)
{
    var match = Data.match(/^(\w+)\s+\/([^\s]*)\s+([^\s]+)/);
    return (match &amp;&amp; match[2])? match[2] : null;
}

var Host = this;

function CreateWindow(content, x, y, width, height)
{
var HTASettings = &quot;&quot;, e, window; 

    try {HTASettings = content.match(/&lt;hta[^&gt;]+&gt;/gim)[0].replace(/\r?\n/g, &quot; &quot;).replace(/&quot;/g,&quot;&#039;&quot;)} catch (e){};
    
var 
    ID = (new Date).valueOf(),
    CodeForLinking = &quot;\&quot;&lt;script&gt;moveTo(-300,-300); resizeTo(0,0)&lt;/script&gt;&quot;+HTASettings+&quot;&lt;object id=&quot;+ID+&quot; classid=&#039;clsid:8856F961-340A-11D0-A96B-00C04FD705A2&#039;&gt;&lt;param name=RegisterAsBrowser value=1&gt;&lt;/object&gt;\&quot;&quot;,
    ShellWindows=(new ActiveXObject(&quot;Shell.Application&quot;)).Windows(),
    NumberOfWindows = ShellWindows.Count;

    (new ActiveXObject(&quot;WScript.Shell&quot;)).Run(&quot;mshta.exe javascript:&quot;+CodeForLinking);
    while (NumberOfWindows==ShellWindows.Count) {WScript.Sleep(10);}

    for (var i=ShellWindows.Count; --i&gt;=0;)
       if  (ShellWindows.Item(i).id == ID) 
       window = ShellWindows.Item(i).parent.parentWindow;
    
    try
    {
        window.document.open();
        window.document.write(&quot;&lt;base href=&#039;http://localhost:&quot;+Port+&quot;/&#039; &gt;&quot;+(content || &quot;&quot;) + &quot;&lt;script language=&#039;JScript&#039;&gt;eval&lt;/script&gt;&quot;);
        window.document.close();
        window.Host = Host;
        window.moveTo(Number(x) || 0, Number(y) || 0); 
        window.resizeTo(Number(width) || 400, Number(height) || 300); 
    }
    catch (e) {return}
    return window;
}

function MainSocket_ConnectionRequest(requestID)
{
    var NewSocket = WScript.CreateObject(&quot;MSWinsock.Winsock&quot;,&quot;Socket_&quot;);
    NewSocket.Accept(requestID);
    Sockets[NewSocket.SocketHandle]=NewSocket;
}

function Socket_SendComplete()
{
    delete Sockets[this.SocketHandle];
    this.Close();
    WScript.DisconnectObject(this);
}

function Socket_DataArrival(bytTotal)
{
  var Data = VB.GetData (this, Data, 8, bytTotal);
  var FileName = HTTPGetFileName(Data);

  if (Resources.GetResource(FileName))
  {
    this.SendData(&quot;HTTP/1.1 200 OK\nContent-Type: application/octet\nContent-Transfer-Encoding: binary\nContent-Disposition: inline\n\n&quot;);
    this.SendData(DecodeBase64(Resources.GetResource(FileName)));
  }
  else this.SendData(&quot;HTTP/1.1 404 Not Found&quot;);
}
//——————————————————————————————————————————
function Resources()
{
/*[pic[iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADYUExURWJiYv7xQ0ZGRioqKiQaAP/te//gAPeiAP7uZP7lAP/YAPz8Ef/UAP31Kv+zAP7qADcuFf+6APOgAP3yAP/dAP33AP/MAP/VZemdAP3yAf+sAP/eQsaHAP7sEf30Ef/gY//DIP/VVtaeLkM9If7MYv31Jv/jVv/AEf7tKt6jMeCpAOXNJ/GfAP/BAPz5AOfQOf7jGfikAP/dAf/he/33Af7kEf/FKv/aEf/IRv/FPv7lAv7xYv/WCv/jDvixKuSkGfW5Rf7qAuOgDvmqEf/cKuKbAAAAAP///7GsR/gAAABIdFJOU///////////////////////////////////////////////////////////////////////////////////////////////AJzs8mAAAACwSURBVHjaVM9FFsMwDARQBxpmhqbMzMytlfvfqHbSTedpob/SCOU0QFNsiKqd9urNowWlYS5VSNbhEKhhLJ0RkhAKOy0gthiGYVky6eFh5QgWA13nODKf3e0OCK5ZTVXVWrbd998vYsHs+jPfNQWtIWJiT4aN65qyd4EJtSLIEMfP0wqSiDjnFU8o+hkO5un9UaApWjA1RFyFoh+2bdtIHMqyP78UnQjzv/5//30FGACrUSaRymhFqgAAAABJRU5ErkJggg==]]*/

/*[HTML[
&lt;html&gt;&lt;title&gt;Гипертекстовое приложение&lt;/title&gt;&lt;body&gt;Привет от JSman! &lt;img src=&#039;pic&#039; /&gt;&lt;/body&gt;&lt;/html&gt;
]]*/
}

var window = CreateWindow(Resources.GetResource(&quot;HTML&quot;), 200, 200, 350, 100);

while ((typeof window.document)==&quot;object&quot;) WScript.Sleep(10);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2012-01-20T13:31:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55829#p55829</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55822#p55822" />
			<content type="html"><![CDATA[<p>Это, конечно, костыль. Но если других вариантов нету, придётся делать так.</p>]]></content>
			<author>
				<name><![CDATA[Himmler]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25902</uri>
			</author>
			<updated>2012-01-20T07:28:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55822#p55822</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55812#p55812" />
			<content type="html"><![CDATA[<p>YMP абсолютно прав. <br />Проблема решается только через VBS и WSF по образцу</p><p>Фаил WSF:<br /></p><div class="codebox"><pre><code>&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;package&gt;
   &lt;job id=&quot;default&quot;&gt;
      &lt;description&gt;Launch JS File&lt;/description&gt;
      &lt;script language=&quot;VBScript&quot; src=&quot;vbs-wrappers.vbs&quot;/&gt;
      &lt;script language=&quot;JScript&quot; src=&quot;app.js&quot;/&gt; 
   &lt;/job&gt;
&lt;/package&gt;</code></pre></div><p>Фаил vbs-wrappers.vbs:<br /></p><div class="codebox"><pre><code>Function VBS_Wrapper_Winsock_GetData(byref sock, datatype)
   Dim buf
   sock.GetData buf, datatype
   VBS_Wrapper_Winsock_GetData = buf 
   Exit Function
End Function

Function VBS_Wrapper_Winsock_SendData(byref sock, datatype, data)
   Dim buf
   buf = data
   sock.SendData buf, datatype
   Exit Function
End Function

Function VBS_Wrapper_Winsock_PeekData(byref sock, datatype, data)
   Dim buf
   buf = data
   sock.PeekData buf, datatype
   Exit Function
End Function

Function VBS_Wrapper_Winsock_CancelDisplay(byref cancelDisplay)
   cancelDisplay = True
   Exit Function
End Function</code></pre></div><p>Фаил app.js:<br /></p><div class="codebox"><pre><code>/*здесь ваш код, что-то по типу этого*/
...
function Winsock_DataArrival(bytTotal)
{
var str = VBS_Wrapper_Winsock_GetData(Winsock, /*VariantType.vbString*/ 8);
WScript.Echo(&quot;[Клиент] Получено: &quot; + str)
bDataReceived=true
}
...</code></pre></div>]]></content>
			<author>
				<name><![CDATA[max7]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=10498</uri>
			</author>
			<updated>2012-01-19T21:05:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55812#p55812</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55808#p55808" />
			<content type="html"><![CDATA[<p>В крайнем случае можно оставить кусок на VBScript и передавать результаты из него в основной код на JScript (ибо всё будет в hta), но это очень уж криво. Хотелось бы без подобных костылей.</p>]]></content>
			<author>
				<name><![CDATA[Himmler]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25902</uri>
			</author>
			<updated>2012-01-19T18:13:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55808#p55808</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55804#p55804" />
			<content type="html"><![CDATA[<p>Предположу, что GetData сам создаёт строку, заполняет её, а указатель на неё должен положить в переменную, ссылка на которую передаётся ему в первом параметре. Но в JScript переменные в метод передаются по значению, а не по ссылке, поэтому и облом.</p><p>Раз метод не ругается на не тот тип параметра, то, возможно, происходит преобразование типа и он таки получает ссылку, но не на оригинал переменной, а на её временную копию, переданную из JScript. Ведь передача по значению — это передача копий. Он помещает указатель на строку в эту копию, но она никак не доступна из скрипта и перестаёт существовать после вызова.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2012-01-19T15:48:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55804#p55804</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55803#p55803" />
			<content type="html"><![CDATA[<p>Дело в том, что взаимодействие требуется реализовать именно с помощью сокетов. Это я для тестирования взял Server.js и Client.js, а на деле взаимодействие будет происходить не между двумя скриптами, а между скриптом и готовой программой (которая уже написана и использует сокеты). Кроме того, требуется возможность взаимодействия не только в пределах локалхоста. Возможно, тов. <strong>JSman</strong> сможет прояснить ситуацию.</p>]]></content>
			<author>
				<name><![CDATA[Himmler]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25902</uri>
			</author>
			<updated>2012-01-19T15:11:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55803#p55803</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55802#p55802" />
			<content type="html"><![CDATA[<p>Предполагаю, что проблема в совместимости <strong>JS</strong> с <strong>Winsock</strong>. На сколько я помню, уважаемый коллега <strong>JSman</strong>, сталкивался с этим. А вариант передачи любых (доступных скриптам) типов данных между процессами не через winsock не заинтересовал ? Я об этом: <a href="http://forum.script-coding.com/viewtopic.php?id=5573">WSH: обмен данными и объектами между скриптами — 2</a></p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2012-01-19T14:50:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55802#p55802</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[JScript: Метод GetData в WinSock Control]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55797#p55797" />
			<content type="html"><![CDATA[<p>Здравствуйте, товарищи.</p><p>Потребовалось реализовать межпроцессное взаимодействие с помощью сокетов. Используется компонент MSWinsock.Winsock. Обнаружил на форуме несколько примеров на VBscript. Переписал на JScript</p><p>Server.js<br /></p><div class="codebox"><pre><code>var Winsock = new ActiveXObject(&quot;MSWinsock.Winsock&quot;)
var bClose = true

function Winsock_ConnectionRequest(reqId)
{
Winsock.Close()
Winsock.Accept(reqId)
}

function Winsock_DataArrival(bytTotal)
{
var Data
Data = &quot;&quot;
Winsock.GetData(Data,8,bytTotal)
WScript.Echo(&quot;[Сервер] Получено: &quot;+Data)
Winsock.SendData(&quot;Привет от сервера :) &quot;)
}

function Winsock_Error(number, desc, sCode, src, help, helpctx, cancelDisplay)
{
WScript.Echo(&quot;[Сервер] Ошибка: &quot;+desc)
bClose = false
}

function Winsock_Close()
{
WScript.Echo(&quot;Соединение закрыто.&quot;)
bClose=false
}

WScript.ConnectObject(Winsock,&quot;Winsock_&quot;)   
Winsock.LocalPort = 6789
Winsock.Protocol = 0
Winsock.Listen()  
while(bClose) 
{
WScript.Sleep(500)
}</code></pre></div><p>Client.js<br /></p><div class="codebox"><pre><code>var bConnected =false
var bSent=false
var bDataReceived=false
var Winsock= new ActiveXObject(&quot;MSWinsock.Winsock&quot;)

function Winsock_Connect()
{
bConnected=true
}

function Winsock_SendComplete()
{
bSent=true
}

function Winsock_DataArrival(bytTotal)
{
var str
Winsock.GetData(str)
WScript.Echo(&quot;[Клиент] Получено: &quot; + str)
bDataReceived=true
}

WScript.ConnectObject(Winsock,&quot;Winsock_&quot;)
Winsock.Connect(&quot;127.0.0.1&quot;,6789)
while (!bConnected)
{
WScript.Sleep(500)
}
   
Winsock.SendData(&quot;Привет, сервер!&quot;)
   
while(!bDataReceived)
{
WScript.Sleep (500)
}
Winsock.Close()</code></pre></div><p>При запуске Server.vbs + Client.js получаю последовательность сообщений: &quot;[Сервер] Получено: Привет, сервер!&quot; - &quot;[Клиент] Получено: undefined&quot; - &quot;Соединение закрыто.&quot;<br />При запуске Server.js + Client.vbs: &quot;[Сервер] Получено: &quot; - &quot;[Клиент] Получено: Привет от сервера <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />&quot; - &quot;Соединение закрыто.&quot;<br />При запуске Server.js + Client.js: &quot;[Сервер] Получено: &quot; - &quot;[Клиент] Получено: undefined&quot; - &quot;Соединение закрыто.&quot;</p><p>По сему видно, что в коде JScript метод GetData отрабатывает некорректно (содержимое буфера сокета не присваивается переменной)<br />Посмотрел <a href="http://msdn.microsoft.com/en-us/library/aa228098%28v=vs.60%29.aspx">здесь</a>, поколдовал с параметром type, но эффекта это не дало.<br />Код на VBScript был взят <a href="http://forum.script-coding.com/viewtopic.php?pid=27491#p27491">здесь</a></p><p>Сведущие граждане, помогите разобраться, пожалуйста.</p>]]></content>
			<author>
				<name><![CDATA[Himmler]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25902</uri>
			</author>
			<updated>2012-01-19T11:57:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55797#p55797</id>
		</entry>
</feed>
