udp使用sendto的有关问题,大家看看有没有遇到过
udp使用sendto的问题,大家看看有没有遇到过
小弟初学网络编程,写了一个很简单的基于udp的程序,客户端发个字符串(由键盘输入)给服务端,服务端收到后显示出来。服务端运行在linux下面,客户端是win32控制台程序,用sendto发送键盘输入的字符串,服务端正常收到。为了使客户端有个图形界面我创建了个基于对话框的mfc程序,加了个编辑框控件和一个发送按钮,没有使用mfc封装好的socket类,和控制台程序一样使用了socket api,现在的问题是:在编辑框控件里输入字符串,然后点击发送,服务端并没有收到,我检查了sendto的返回值,是发送的字节数。于是我不停的按发送按钮,按了一会服务端就收到了一大堆重复的字符串。请问这是什么原因?程序只是从win32 console变成了mfc程序,主要代码没有改动,结果就不同了。希望大家帮我找到原因,谢谢!
------解决方案--------------------
应该说不会出问题的
------解决方案--------------------
UDP协议应该不会有这样的问题,TCP可能会出现粘包的情况!
------解决方案--------------------
是的程序的问题吧?
------解决方案--------------------
仔细检查你的代码。
还有UDP有可能丢包,但一般来说丢包率会很低。
------解决方案--------------------
于是我不停的按发送按钮,按了一会服务端就收到了一大堆重复的字符串。
这说明服务器是可以接收到数据的,只是一次只能接收很多或是丢包率较大。
检查你的程序:
是否有包的长度判断或是其它的过滤包的判断。
小弟初学网络编程,写了一个很简单的基于udp的程序,客户端发个字符串(由键盘输入)给服务端,服务端收到后显示出来。服务端运行在linux下面,客户端是win32控制台程序,用sendto发送键盘输入的字符串,服务端正常收到。为了使客户端有个图形界面我创建了个基于对话框的mfc程序,加了个编辑框控件和一个发送按钮,没有使用mfc封装好的socket类,和控制台程序一样使用了socket api,现在的问题是:在编辑框控件里输入字符串,然后点击发送,服务端并没有收到,我检查了sendto的返回值,是发送的字节数。于是我不停的按发送按钮,按了一会服务端就收到了一大堆重复的字符串。请问这是什么原因?程序只是从win32 console变成了mfc程序,主要代码没有改动,结果就不同了。希望大家帮我找到原因,谢谢!
------解决方案--------------------
应该说不会出问题的
------解决方案--------------------
UDP协议应该不会有这样的问题,TCP可能会出现粘包的情况!
------解决方案--------------------
是的程序的问题吧?
------解决方案--------------------
仔细检查你的代码。
还有UDP有可能丢包,但一般来说丢包率会很低。
------解决方案--------------------
于是我不停的按发送按钮,按了一会服务端就收到了一大堆重复的字符串。
这说明服务器是可以接收到数据的,只是一次只能接收很多或是丢包率较大。
检查你的程序:
是否有包的长度判断或是其它的过滤包的判断。