在伺服器上接收和傳送資料
下列程式碼示範伺服器所使用的 recv 和 send 函式。
在通訊端上接收和傳送資料
#define DEFAULT_BUFLEN 512
char recvbuf[DEFAULT_BUFLEN];
int iResult, iSendResult;
int recvbuflen = DEFAULT_BUFLEN;
// Receive until the peer shuts down the connection
do {
iResult = recv(ClientSocket, recvbuf, recvbuflen, 0);
if (iResult > 0) {
printf("Bytes received: %d\n", iResult);
// Echo the buffer back to the sender
iSendResult = send(ClientSocket, recvbuf, iResult, 0);
if (iSendResult == SOCKET_ERROR) {
printf("send failed: %d\n", WSAGetLastError());
closesocket(ClientSocket);
WSACleanup();
return 1;
}
printf("Bytes sent: %d\n", iSendResult);
} else if (iResult == 0)
printf("Connection closing...\n");
else {
printf("recv failed: %d\n", WSAGetLastError());
closesocket(ClientSocket);
WSACleanup();
return 1;
}
} while (iResult > 0);
send和recv函式都會分別傳回所傳送或接收位元組數目的整數值,或傳回錯誤。 每個函式也會採用相同的參數:使用中的通訊端、 char 緩衝區、要傳送或接收的位元組數目,以及要使用的任何旗標。
下一個步驟: 中斷伺服器連線
相關主題