使用socket进行文件传输,在本地测试没问题,但是服务端部署到服务器发现一个问题,本地客户端发送了很多数据,而服务器上接收到的数据少,多次测试也不稳定,接受到的数据多少比较随机,客户端发送一段时间之后就send函数就卡住了,无法继续发送,进行超时设置,如下代码,之后就返回了,说明是阻塞,
int nNetTimeout = 1000;//1秒,
//设置发送超时
setsockopt(sockServer, SOL_SOCKET, SO_SNDTIMEO, (char*)&nNetTimeout, sizeof(int));
后来想到一个方法,发送端每次发送前用Sleep函数先睡眠20毫秒,后面测试发现服务端接收数据就多了很多,很可能是因为send到服务器数据过快,在本地电脑模拟数据传输及时,而服务器走公网网络慢导致。