當前位置:編程學習大全網 - 網站源碼 - 在socket編程中怎麽判斷recv是否接收完成

在socket編程中怎麽判斷recv是否接收完成

recv函數怎麽判斷接收結束:

1、例如在數據流中帶個結束標識,那樣讀到結束標識就知道傳輸完成,停止。 這種方法只能用傳輸文本文件,有個文件結束符,二進制文件不行。

2、先傳個長度,那麽接收方就可以控制 接下來要讀取多少個字節的數據才算完成。這個適合傳輸任何文件。

例子:

C/C++ code

client的發函數為:char line[MAXLINE]; while ((fgets(line,MAXLINE,fd)!=NULL) // fd 為壹個文件的指針 {send (connfd, line,strlen(line),0) // connfd為 socket}server 的接收函數為:for (;;) {if ((n=recv(connfd, recvline,MAXLINE,0)>0) {recvline[n]=0;fputs(stdout,recvline);else break;}}

當發端停止發送後,收端無法得知數據已經傳輸完畢,從而壹直在for中死循環,可以用以上方法判斷接收結束。

  • 上一篇:合生元核銷碼跟追溯碼是在壹起的嘛
  • 下一篇:換手機了,qq同步助手怎麽將短信導入新手機嗎
  • copyright 2024編程學習大全網