<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: AHKsock, Winsock. Send/Recived данных, отличных от строки/Char]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12226&amp;type=atom" />
	<updated>2016-12-17T10:47:59Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=12226</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: AHKsock, Winsock. Send/Recived данных, отличных от строки/Char]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=109908#p109908" />
			<content type="html"><![CDATA[<p>Тоже верно. <a href="https://autohotkey.com/board/topic/48373-passing-an-array-as-a-dllcall-parameter/">Тут</a> даже описано, как примерно это сделать. Вот только получается на выходе та же строка. На каком-то форуме советовали в начало каждого такого элемента укладываемого в поток, пихать символ-разделитель, который облегчит обратное превращение на другом конце провода.<br />Мой вопрос из чистого любопытства. Возник из того, что по шаблону, данные приходится превращать в строку, посылать к потребителю, а там превращать их в исходное состояние. Проблемы в этом нет и на обтекаемость не влияет, просто стало интересно - есть ли возможность отправлять данные &quot;как есть&quot;. Друг, ваяющий на C# посоветовал ещё покурить мануалы по сериализации. Там что-то вроде упаковки данных по нужному объекту в бинарник, который отправляется файлом, а на той стороне десериализуется по известному алгоритму. Но это по сути новые танцы со старым бубном, где исходные данные превращаются в некий употребимый вид для транспортировки, чтобы за тем пройти обратное превращение. Это скорее хорошо для объектов класса, построением которых я пока не умею правильно пользоваться. В этом месте, целесообразность возвращает меня к пониманию того, что гораздо проще пользовать уже обкатанный велосипед, а не изобретать новый. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>За комментарии низкий поклон!</p>]]></content>
			<author>
				<name><![CDATA[KusochekDobra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33846</uri>
			</author>
			<updated>2016-12-17T10:47:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=109908#p109908</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: AHKsock, Winsock. Send/Recived данных, отличных от строки/Char]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=109907#p109907" />
			<content type="html"><![CDATA[<p>О каком массиве речь? Если о том, что в АНК, то это объект, т.е. что-то хитрое, в отличие от простого массива, где энное число одинаковых по размеру (!) кусочков данных лежат цепочкой рядом вплотную друг к другу. С таким массивом можно обращаться и как с последовательностью байт. А массив АНК может хранить данные своих членов где угодно, т.е. они лежат вразброс. Соответственно, чтобы передать их, как одно целое, их надо сначала уложить в одно целое — записать один подле другого в буфер памяти. А на том конце получатель должен знать, по какому алгоритму разбирать этот сплошной поток байтов на отдельные члены массива.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-12-17T09:26:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=109907#p109907</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: AHKsock, Winsock. Send/Recived данных, отличных от строки/Char]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=109899#p109899" />
			<content type="html"><![CDATA[<p>Здоровья всем!<br />Посоветуйте пожалуйста способ.<br /><a href="https://autohotkey.com/board/topic/53827-ahksock-a-simple-ahk-implementation-of-winsock-tcpip/">AHKsock, по которой вопрос.</a><br /><a href="http://stackoverflow.com/questions/7144984/send-other-data-types-in-winsock2">Здесь</a> и, например, <a href="http://www.cplusplus.com/forum/general/67254/">здесь</a>, если правильно понял, дядьки говорят, что поскольку независимо от типа данных, передача осуществляется в виде последовательности байт, то для сообщения(SEND) необходимо указывать корректный размер отправляемого потока этих самых байт. Со строкой всё предельно просто - &quot;StrLen()*2&quot;, а вот как быть например, в случае, если необходимо отправить массив? Просто сложить длины данных по всем его индексам и отправить, не получается. Или, что не менее вероятно, я не правильно пытаюсь получать данные, которые приходят от отправителя, действуя тем же способом, словно это типичная переменная описываемого процесса:<br /></p><div class="codebox"><pre><code>
if (sEvent == &quot;RECEIVED&quot;)
	MsgBox,,Title,% bRecvData.Length()
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[KusochekDobra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33846</uri>
			</author>
			<updated>2016-12-16T13:45:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=109899#p109899</id>
		</entry>
</feed>
