当前位置: 技术问答>linux和unix
客户端服务端使用socket通信的send/write最大发送多少?
来源: 互联网 发布时间:2017-01-12
本文导语: 大家好。 这个程序是 客户端向服务端发送文件。 客户端使用fread在本地读文件到buffer中,然后使用send或write在while循环中把buffer中的数据循环发送到服务器端。 测试文件大概为12M。问题是,如果使用fread一次读1M,...
大家好。
这个程序是 客户端向服务端发送文件。
客户端使用fread在本地读文件到buffer中,然后使用send或write在while循环中把buffer中的数据循环发送到服务器端。
测试文件大概为12M。问题是,如果使用fread一次读1M,然后发送时,服务器会正常接收100k~200k,然后recv的返回值变成为-1了。提示bad address。
如果使用fread一次读64K,客户端跟服务器端都正常。
(客户端阻塞,服务器端非阻塞,使用libev)
请问客户端在使用send/write时,buffer的大小有限制么?
通常大家是怎么写客户端的发送数据程序的?
谢谢大家。
这个程序是 客户端向服务端发送文件。
客户端使用fread在本地读文件到buffer中,然后使用send或write在while循环中把buffer中的数据循环发送到服务器端。
测试文件大概为12M。问题是,如果使用fread一次读1M,然后发送时,服务器会正常接收100k~200k,然后recv的返回值变成为-1了。提示bad address。
如果使用fread一次读64K,客户端跟服务器端都正常。
(客户端阻塞,服务器端非阻塞,使用libev)
请问客户端在使用send/write时,buffer的大小有限制么?
通常大家是怎么写客户端的发送数据程序的?
谢谢大家。
|
bad addr 就是你需要研究的问题