读取套接字有线问题 - 在消息中添加一些有线字符

时间:2010-11-20 19:51:01

标签: c++ objective-c sockets sfml

当我发送例如“1234”时,使用SFML库的C ++服务器读取“1234╠╠╠╠╤lσ╝╝√=♦↑עσ”。从C ++ SFML clinet发送到服务器时,一切正常。使用Async Socket库在Onj-c中编写的原始客户端。 WTF? (所有TCP)

4 个答案:

答案 0 :(得分:2)

我不确定这会对您有所帮助,但我建议发送类似“1234 \ 0”的内容。

答案 1 :(得分:0)

听起来服务器假设它接收的数据是空终止的,但其中一个客户端只是发送“1234”而不是“1234 \ 0”。所以你看到的怪异角色可能就是服务器内存中那些垃圾。

您可以使用像Wireshark这样的工具来查看网络上的确切内容,以及它们在两个客户端之间的区别。

答案 2 :(得分:0)

SFML中的一个天真实现确实假设一个以空值终止的字段 - 并将显示其原始缓冲区。哪个确实没有终止。要么以\ 0结束发送字符串,要么发送类似12345的内容 - 并更改打印以将\ 0置于[len] - 或类似地。

答案 3 :(得分:0)

从lib中获取字符串以及数据长度,并在[line]

处添加\ 0