当前位置: 技术问答>linux和unix
【求助】网络编程中的send函数不能持续发送的问题
来源: 互联网 发布时间:2017-05-20
本文导语: 各位好,最近遇到一个有关网络编程的问题,查了好多资料还是没有进展,故向各位求助! 问题如下: 我是在DSP上跑的程序,相当于是一个服务器;与之相连接的是作为客户端的PC机。程序是基于TCP协议。 ...
各位好,最近遇到一个有关网络编程的问题,查了好多资料还是没有进展,故向各位求助!
问题如下:
我是在DSP上跑的程序,相当于是一个服务器;与之相连接的是作为客户端的PC机。程序是基于TCP协议。
我的服务器程序(即下位机程序)是将一个数组向上位机持续不断的发送(即不断执行send( )函数),但是send只能执行有限次,具体原因应该是向上位机发送的位数超过了65535,此时程序就会自己停下来。
故希望前辈能够指点一二, 提前感谢!
我的循环发送程序如下:
happy dog
问题如下:
我是在DSP上跑的程序,相当于是一个服务器;与之相连接的是作为客户端的PC机。程序是基于TCP协议。
我的服务器程序(即下位机程序)是将一个数组向上位机持续不断的发送(即不断执行send( )函数),但是send只能执行有限次,具体原因应该是向上位机发送的位数超过了65535,此时程序就会自己停下来。
故希望前辈能够指点一二, 提前感谢!
我的循环发送程序如下:
happy dog
|
缓冲区满了之后,调用send时进程被阻塞了,可设置成非阻塞的方式。将第四个参数0改成MSG_DONTWAIT或者O_NONBLOCK。
j = send(s, Data_From_ADS1, 27, MSG_DONTWAIT);