jycel 发表于 2009-4-20 15:32:46

[已解决]TCPRecv函数请教

解决方法在:http://autoitx.com/forum.php?mod=viewthread&tid=6568&extra=page%3D1
刚接触到TCPRecv和TCPSend这二个函数!为了学习下,准备做成局域网消息用,相当呼叫网管那种
发送端如果输入英文,接收正确定,如果中文,则只显示一半也就是字符不对!
另外就是不知道怎么获取是发送消来的IP或其它信息!好保存到配置文件中做记录,以便查看!
请师傅们指点下!
在帮助的中例子中
$recv = TCPRecv( $Socket, 2048);接收内容
中间这个2048为最大返回量(定义返回是接收的最大字符数. )
但是改得再大,在用tcpsend发送中文字符时,都会少一半,英文都可以!
试过把发送的消息转为二进制,然后接收时把二进制转为中文字符串同样问题!
如图显示

[ 本帖最后由 jycel 于 2009-4-21 15:07 编辑 ]

jycel 发表于 2009-4-20 15:59:23

在UDP或TCP中都存在这现像,字符问题还是存在!不知道怎么解决!

[ 本帖最后由 jycel 于 2009-4-21 12:29 编辑 ]

jycel 发表于 2009-4-20 19:03:30

期待高手指点:face (31):

[ 本帖最后由 jycel 于 2009-4-21 12:30 编辑 ]

jycel 发表于 2009-4-21 12:33:15

想到一个方法
在发送的消息后面加N个空字符,可以解决!
但这不是真正解决方法!
~~
发现尽是自己在说,论坛的师傅们指点下啊:face (13):

[ 本帖最后由 jycel 于 2009-4-21 12:34 编辑 ]

zjg2003 发表于 2009-4-22 15:17:28

也发现这个问题,后面加空格就正常了

ajian55 发表于 2009-10-20 14:35:24

昨天我发了贴,有人回答说先把字符串转换为二进制发送,然后在接受端再转回来可以解决中文字符丢失问题,确实有效。

jycel 发表于 2009-10-20 18:58:22

呵呵!此问题早已解决!当时我对这方面啥也不懂!
页: [1]
查看完整版本: [已解决]TCPRecv函数请教