client端: #include "stdafx.h" #include <windows.h> #include <stdio.h> #include <conio.h> #include <WinSock.h> #pragma comment(lib,"ws2_32.lib") void main(void) { WSADATA wsaData; int startRet=WSAStartup(MAKEWORD(2,2),&wsaData); if (startRet!=0) { printf("Error Start:%d/n",WSAGetLastError()); WSACleanup(); return; } SOCKET ConnectSocket; ConnectSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (ConnectSocket == INVALID_SOCKET) { printf("Error at socket(): %ld/n", WSAGetLastError()); WSACleanup(); return; } struct sockaddr_in clientService; int port=5150; clientService.sin_family=AF_INET; clientService.sin_port=htons(port); clientService.sin_addr.s_addr=inet_addr("127.0.0.1"); if ( connect( ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) { printf( "Failed to connect.%d/n",WSAGetLastError()); WSACleanup(); return; } printf("Connected to server./n"); char buf[100]="This is test"; int sendRet=send(ConnectSocket,buf,(int)strlen(buf),0); if (sendRet==SOCKET_ERROR) { printf("Error sendRet fail with error code:%d/n",WSAGetLastError()); return; } closesocket(ConnectSocket); WSACleanup(); return; } server 端: #include "stdafx.h" #include <windows.h> #include <stdio.h> #include <conio.h> #include <winsock.h> #pragma comment(lib,"ws2_32.lib") void main(void) { WSADATA wsaData; if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0) { printf("Error WSAStartUp fail with error code:%d/n",WSAGetLastError()); return ; } //Create scoket and set scokaddr_in struct,then bind the socket to the addr SOCKET s; struct sockaddr_in tcpaddr; int port=5150; s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (s==INVALID_SOCKET) { printf("Error create scoket fail:%d/n",WSAGetLastError()); WSACleanup(); return; } tcpaddr.sin_family=AF_INET; tcpaddr.sin_port=htons(port); tcpaddr.sin_addr.s_addr=inet_addr("127.0.0.1"); int bindRet=bind(s,(SOCKADDR*)&tcpaddr,sizeof(tcpaddr)); if (bindRet==SOCKET_ERROR) { printf("Error bind fail with error code:%d",WSAGetLastError()); WSACleanup(); return ; } int lisRet=listen(s,5); if (lisRet!=0) { printf("Error listen fail with error code:%d",WSAGetLastError()); WSACleanup(); return; } SOCKET AcceptSocket; printf("waiting for client connect"); AcceptSocket=accept(s,NULL,NULL); if (AcceptSocket==INVALID_SOCKET) { printf("accept failed: %d/n", WSAGetLastError()); closesocket(s); WSACleanup(); return; } char buf[100]; memset(buf,0,sizeof(buf)); int recvRet=recv(AcceptSocket,buf,512,0); if (recvRet==SOCKET_ERROR) { printf("Error recv fail with error code:%d/n",WSAGetLastError()); return ; } printf("%s",buf); closesocket(s); } 只是简单的实现客户端向服务器端发送数据,以后待完善。