首先是TCP
server端:[cpp]view plaincopy #include"stdafx.h"#include<stdio.h>#include<winsock2.h>#pragmacomment(lib,"ws2_32.lib")intmain(intargc,char*argv[]){//初始化WSAWORDsockVersion=MAKEWORD(2,2);WSADATAwsaData;if(WSAStartup(sockVersion,&wsaData)!=0){return0;}//创建套接字SOCKETslisten=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(slisten==INVALID_SOCKET){printf("socketerror!");return0;}//绑定IP和端口sockaddr_insin;sin.sin_family=AF_INET;sin.sin_port=htons(8888);sin.sin_addr.S_un.S_addr=INADDR_ANY;if(bind(slisten,(LPSOCKADDR)&sin,sizeof(sin))==SOCKET_ERROR){printf("binderror!");}//开始监听if(listen(slisten,5)==SOCKET_ERROR){printf("listenerror!");return0;}//循环接收数据SOCKETsClient;sockaddr_inremoteAddr;intnAddrlen=sizeof(remoteAddr);charrevData[255];while(true){printf("等待连接...\n");sClient=accept(slisten,(SOCKADDR*)&remoteAddr,&nAddrlen);if(sClient==INVALID_SOCKET){printf("accepterror!");continue;}printf("接受到一个连接:%s\r\n",inet_ntoa(remoteAddr.sin_addr));//接收数据intret=recv(sClient,revData,255,0);if(ret>0){revData[ret]=0x00;printf(revData);}//发送数据char*sendData="你好,TCP客户端!\n";send(sClient,sendData,strlen(sendData),0);closesocket(sClient);}closesocket(slisten);WSACleanup();return0;}client端:[cpp]view plaincopy #include"stdafx.h"#include<WINSOCK2.H>#include<STDIO.H>#pragmacomment(lib,"ws2_32.lib")intmain(intargc,char*argv[]){WORDsockVersion=MAKEWORD(2,2);WSADATAdata;if(WSAStartup(sockVersion,&data)!=0){return0;}SOCKETsclient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(sclient==INVALID_SOCKET){printf("invalidsocket!");return0;}sockaddr_inserAddr;serAddr.sin_family=AF_INET;serAddr.sin_port=htons(8888);serAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");if(connect(sclient,(sockaddr*)&serAddr,sizeof(serAddr))==SOCKET_ERROR){printf("connecterror!");closesocket(sclient);return0;}char*sendData="你好,TCP服务端,我是客户端!\n";send(sclient,sendData,strlen(sendData),0);charrecData[255];intret=recv(sclient,recData,255,0);if(ret>0){recData[ret]=0x00;printf(recData);}closesocket(sclient);WSACleanup();return0;}