1. 程式人生 > >VC小工具.最簡單TCP服務器

VC小工具.最簡單TCP服務器

error 接收數據 target ise style net socket span ++

1、C++基於TCP_IP簡單的客戶端、服務器通信程序實例 - happy_xiahuixiax的博客 - CSDN博客.html(https://blog.csdn.net/happy_xiahuixiax/article/details/72627426)

2、

3、代碼:(VC6 編譯通過,未測試...)

#include <WinSock2.h>  
#include <stdio.h>  
#include <stdlib.h>  

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

void main()  
{  
    WSADATA wsaData;  
    
int port = 8000; char buf[] = "Server: hello, I am a server....."; if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { printf("Failed to load Winsock"); return; } //創建用於監聽的套接字 SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0); SOCKADDR_IN addrSrv; addrSrv.sin_family
= AF_INET; addrSrv.sin_port = htons(port); //1024以上的端口號 addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY); int retVal = bind(sockSrv, (LPSOCKADDR)&addrSrv, sizeof(SOCKADDR_IN)); if(retVal == SOCKET_ERROR){ printf("Failed bind:%d\n", WSAGetLastError()); return
; } if(listen(sockSrv,10) ==SOCKET_ERROR){ printf("Listen failed:%d", WSAGetLastError()); return; } SOCKADDR_IN addrClient; int len = sizeof(SOCKADDR); while(1) { //等待客戶請求到來 SOCKET sockConn = accept(sockSrv, (SOCKADDR *) &addrClient, &len); if(sockConn == SOCKET_ERROR){ printf("Accept failed:%d", WSAGetLastError()); break; } printf("Accept client IP:[%s]\n", inet_ntoa(addrClient.sin_addr)); //發送數據 int iSend = send(sockConn, buf, sizeof(buf) , 0); if(iSend == SOCKET_ERROR){ printf("send failed"); break; } char recvBuf[100]; memset(recvBuf, 0, sizeof(recvBuf)); // //接收數據 recv(sockConn, recvBuf, sizeof(recvBuf), 0); printf("%s\n", recvBuf); closesocket(sockConn); } closesocket(sockSrv); WSACleanup(); system("pause"); }

4、

5、

VC小工具.最簡單TCP服務器