2 回答

胡說叔叔
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
怎么個(gè)不行法?你調(diào)用send函數(shù),網(wǎng)絡(luò)底層會(huì)自動(dòng)按照你所指定的發(fā)送窗口大小來分包,所以一般也可以發(fā)送成功的,只不過 如果自己不在網(wǎng)絡(luò)層組織數(shù)據(jù)包的話,效率會(huì)有問題。

拉丁的傳說
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
不要一次發(fā)送,分成多次發(fā)送
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 ;
}
添加回答
舉報(bào)
0/150
提交
取消