關於伺服器端用C語言實現TCP的資料接收

2021-08-14 03:16:21 字數 1314 閱讀 9301

關於這個,真的是踩過很多坑,羅列了一下要注意的點:

**前面一定要新增庫,不然會出很多錯

#pragma comment(lib, "ws2_32.lib")

這段**在vs2017中怎麼也編譯不通過

建議在vc++6.0中編譯,我是在此環境下編譯通過的

作為伺服器端時,伺服器每接收一次就要斷掉,再傳送需要客戶端重新連線

#include #include #include #include #pragma comment(lib, "ws2_32.lib")

int main(int argc, char* argv)

//建立套接字

socket slisten = socket(af_inet, sock_stream, ipproto_tcp);

if(slisten == invalid_socket)

//繫結ip和埠

sockaddr_in sin;

sin.sin_family = af_inet;

sin.sin_port = htons(1234);

sin.sin_addr.s_un.s_addr = inaddr_any;

if(bind(slisten, (lpsockaddr)&sin, sizeof(sin)) == socket_error)

//開始監聽

if(listen(slisten, 5) == socket_error)

//迴圈接收資料

socket sclient;

sockaddr_in remoteaddr;

int naddrlen = sizeof(remoteaddr);

char revdata[255];

while (true)

printf("接受到乙個連線:%s \r\n", inet_ntoa(remoteaddr.sin_addr));

//接收資料

int ret = recv(sclient, revdata, 255, 0);

if(ret > 0)

//傳送資料

char * senddata = "你好,tcp客戶端!\n";

send(sclient, senddata, strlen(senddata), 0);

closesocket(sclient);

}closesocket(slisten);

wsacleanup();

return 0;

}

關於客戶端的或者udp的可以看下這篇:

非同步TCP連線伺服器端

tcptranslate 為傳輸輔助類,此外 不全.待續.using system using system.io using system.text using system.net using system.net.sockets using system.collections.generic...

C 實現簡單Tcp伺服器端 Ipv6

使用c 基於windows平台下實現tcp伺服器端,ipv6方式 main.cpp include winsock的標頭檔案 include sockaddr in6的標頭檔案 include using namespace std 指定動態庫的lib檔案 pragma comment lib,ws...

WebSocket的C 伺服器端實現

由於需要在專案中增加websocket協議,與客戶端進行通訊,不想使用開源的庫,比如websocketpp,就自己根據websocket協議實現一套函式,完全使用c 實現。一 原理 websocket協議解析,已經在前面部落格裡面詳細講解過,可以參考部落格這裡就不詳細細說。伺服器端實現就是使用tcp...