当前位置: 技术问答>linux和unix
通过socket连接一次性发送大数据量的问题
来源: 互联网 发布时间:2015-06-24
本文导语: 服务器的socket(TCP)被设置成非阻塞方式,但是需要一次性发送300k-400k的数据给客户端,这样每次没有发送完全,函数就返回了,怎样才能发送完整的数据?? | 把缓冲设置大一些吧。 | ...
服务器的socket(TCP)被设置成非阻塞方式,但是需要一次性发送300k-400k的数据给客户端,这样每次没有发送完全,函数就返回了,怎样才能发送完整的数据??
|
把缓冲设置大一些吧。
|
可以把数据拆成大小小于8192的数据段,然后再发送,这样还安全,还不容易出错!
|
可以用 select(...) 来等待数据发送完成
|
发送前把socket设成阻塞方式, 发送完再设回来。
|
发送的时候不是返回发送的字节数吗,你可以继续从发送完的地方的后面进行发送,比如
发送了n个字节,那么下次发送缓冲设为sendbuff+n
发送了n个字节,那么下次发送缓冲设为sendbuff+n