微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

UDP运行时服务器端的问题

时间:2017-02-19 04:01  浏览:努力统计中...
用C++,SOCKET,编的C/S模式的,编译什么的多没问题,也能生成解决方案,就是运行时,服务器端显示如下: [color=#FF0000][/color] Please input data: HELLO 127.0.0.1 say : HEELO烫烫烫烫烫烫烫烫烫? P
用C++,SOCKET,编的C/S模式的,编译什么的多没问题,也能生成解决方案,就是运行时,服务器端显示如下:[color=#FF0000][/color]
Please input data:
HELLO

127.0.0.1 say : HEELO烫烫烫烫烫烫烫烫烫?
Please input data:
HELLO
127.0.0.1 say : HELLO烫烫烫烫烫烫烫烫烫?
Please input data:
HELLO
这是什么情况?乱码了吗?客户端很正常。有时候“?”还会是笑脸,请高手指点!

还有客户端与服务器端双方进行对话时,对话次数由什么决定,send,recv的缓存吗?
不胜感激!
[color=#FF0000][/color]

和编码方式有关udp对话是一对一的,要么收到,要么丢失。

可能没说明白。客户端只发了个HELLO,服务器收到时上面现实的,后面的汉字是怎么回事儿,怎么自己加上去的?是程序出问题了吗

一定根数据统一。发送端和接收端数据类型要一样的。
发送方, 发送数据时, 发送的长度请加上结尾的那个 0 (一般情况下,Ansi字符的话,长度就是字符串长度+1, wchar_t 的话,就是+2)。

接收方,正常接收所有数据显示即可。
还有一种方法,就是发送方不动, 接收方,在接收到数据后,在接收数据的末尾,自己加一个 0 , 代表字符串结束。 就不会出现乱码了。


你服务器接收后没有加\0
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线------