關於這個,真的是踩過很多坑,羅列了一下要注意的點:
**前面一定要新增庫,不然會出很多錯
#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...