Z zzz Unregistered / Unconfirmed GUEST, unregistred user! 1998-12-31 #1 用TCP控件编程,在一端SendData('中文'),另一端GetData时发现是乱码, 如何是好?
Z zzz Unregistered / Unconfirmed GUEST, unregistred user! 1998-12-31 #3 你说的是Socket方法中的调用,Socket是TCP上层的应用,我是想在TCP上建立自己 的应用(我有一套自己的协议),所以只能调用TCP的SendData方法。
P pegasus Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-05 #4 GetData得到的数据不一定和发送的数据在同样的地方分界: SendData('1234567'); GetData may return '1234'in first time, and '567' in the next time
GetData得到的数据不一定和发送的数据在同样的地方分界: SendData('1234567'); GetData may return '1234'in first time, and '567' in the next time
Z zzz Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-09 #5 因为TCP是个管道,因此不能用指定最大缓冲的方法来读取数据,如 GetData(buf,VT_BSTR,1024) 我的读取方法是逐字节来读 GetData(buf,VT_BSTR,1) 读到自定义的包结束符(如Chr(13)),就结束。这样取西文和数字 都没有问题,中文就不行了。 现在用的办法是在报文前加一个描述中文字符长度的标识,如 SendData('R,17,前置机1状态良好!') 服务器端读取到17后,再 GetData(buf,VT_BSTR,17) 不知道还有更好的办法没有?
因为TCP是个管道,因此不能用指定最大缓冲的方法来读取数据,如 GetData(buf,VT_BSTR,1024) 我的读取方法是逐字节来读 GetData(buf,VT_BSTR,1) 读到自定义的包结束符(如Chr(13)),就结束。这样取西文和数字 都没有问题,中文就不行了。 现在用的办法是在报文前加一个描述中文字符长度的标识,如 SendData('R,17,前置机1状态良好!') 服务器端读取到17后,再 GetData(buf,VT_BSTR,17) 不知道还有更好的办法没有?
P pegasus Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-28 #6 // Agree with zzz. My comment is the same meaning.
T tqz Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-28 #7 把收到的数据都放到一个Buffer中,断开的地方不就连起来了? 另外,收的时候可以判断是不是汉字的一半,以作处理。
B barton Unregistered / Unconfirmed GUEST, unregistred user! 1999-02-03 #8 有一个非常简单的控件,根本没有这个问题。 虽然这个控件很小,但我也不知怎么发给你。
唐 唐晓锋 Unregistered / Unconfirmed GUEST, unregistred user! 1999-02-26 #9 你先用MIME编码,然后在发,接收端解码. MIME控件Delphi4提供
J Jimchael Tsee Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-22 #10 用类似uudecode和uuencode的方法一定可以.
X xubin Unregistered / Unconfirmed GUEST, unregistred user! 1999-06-27 #11 u can use TCP as the base protocol, u also can use ur own protocol up the TCP