<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: AHKsock, Winsock. Send/Recived данных, отличных от строки/Char]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=12226</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12226&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: AHKsock, Winsock. Send/Recived данных, отличных от строки/Char».]]></description>
		<lastBuildDate>Sat, 17 Dec 2016 10:47:59 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: AHKsock, Winsock. Send/Recived данных, отличных от строки/Char]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=109908#p109908</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Sat, 17 Dec 2016 10:47:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=109908#p109908</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: AHKsock, Winsock. Send/Recived данных, отличных от строки/Char]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=109907#p109907</link>
			<description><![CDATA[<p>О каком массиве речь? Если о том, что в АНК, то это объект, т.е. что-то хитрое, в отличие от простого массива, где энное число одинаковых по размеру (!) кусочков данных лежат цепочкой рядом вплотную друг к другу. С таким массивом можно обращаться и как с последовательностью байт. А массив АНК может хранить данные своих членов где угодно, т.е. они лежат вразброс. Соответственно, чтобы передать их, как одно целое, их надо сначала уложить в одно целое — записать один подле другого в буфер памяти. А на том конце получатель должен знать, по какому алгоритму разбирать этот сплошной поток байтов на отдельные члены массива.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Sat, 17 Dec 2016 09:26:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=109907#p109907</guid>
		</item>
		<item>
			<title><![CDATA[AHK: AHKsock, Winsock. Send/Recived данных, отличных от строки/Char]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=109899#p109899</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Fri, 16 Dec 2016 13:45:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=109899#p109899</guid>
		</item>
	</channel>
</rss>
