关于SOCKET的简单问题
我用send和recv的时候有个疑问,传送数据的时候接收方怎样知道数据传送完了,
应该closesocket了呢?还想问问:发送方如果closesocket接收方会怎样呢?
是接收完全部数据才返回error还是没接收完数据马上返回呢?
--------------------------------------------------------在线等待答复
问题点数:20、回复次数:3Top
1 楼f_ky(毛蛋哥哥)回复于 2002-04-18 10:11:41 得分 0
recv出现超时的时候才会返回错误,恐怕你得自己send一个结束标志了。Top
2 楼nickypan(Nicky)回复于 2002-04-18 10:12:32 得分 10
发送方发完数据时应该closesocket,这样接收方那边的recv会返回一个0,这时接收方就可以closesocket了!Top
3 楼dylanwolf()回复于 2002-04-18 10:17:49 得分 10
接受方一般用一循环调用 int i=recv() 读取数据,如果函数返回值i<0, 则发送方已经close.
你可以先发送一个整型的变量,该变量为你要发送数据的长度 length, 接受方先接受该长度数据 length, 然后判断是否已接受全部数据.Top




