問題就是在linux下c++用socket通信 使用send函數發送數據 如何發送超大數據大小有1~2G 正常發送100+M數據都沒問題 上G就不行了?? 怎么解決 求解釋 求代碼 謝謝各位了
2 回答

胡說叔叔
TA貢獻1804條經驗 獲得超8個贊
怎么個不行法?你調用send函數,網絡底層會自動按照你所指定的發送窗口大小來分包,所以一般也可以發送成功的,只不過 如果自己不在網絡層組織數據包的話,效率會有問題。

拉丁的傳說
TA貢獻1789條經驗 獲得超8個贊
不要一次發送,分成多次發送
int sendbuf(int socket, char *buffer , int sendlen )
{
int len=0;
int one=1024 ;
do
{
if ( sendlen-len > 1024 )
one=1024;
else
one=sendlen-len ;
send(socket, buffer, one , 0);
len += one ;
buffer += one ;
}while ( len < sendlen ) ;
return len ;
}
添加回答
舉報
0/150
提交
取消