#include <Winsock2.h> #include <stdio.h> #include <windows.h> #pragma comment(lib,"ws2_32.lib") int main() { //加载套接字库 WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=MAKEWORD( 1 , 1 ); err=WSAStartup(wVersionRequested,&wsaData); if(err!=0) { printf("Error,EXIT!/n"); return -1; } if( LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!= 1 ) { WSACleanup(); return -1; } //创建用于监听的套接字 SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv; //本地地址信息 addrSrv.sin_addr.S_un.S_addr=inet_addr("192.168.17.91"); //本地地址,主机字节序转化为网络字节序 addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000); //网络端口,转化为网络字节序 //绑定套接字与本地地址信息 bind(sockSrv,(SOCKADDR*)(&addrSrv),sizeof(SOCKADDR)); //将套接字设为监听模式,准备接受客户请求 listen(sockSrv,5); //客户端的地址信息 SOCKADDR_IN addrClient; int len=sizeof(SOCKADDR); while(true) { //等待客户请求到来,接收到连接套接字,建立了TCP连接。 SOCKET sockConn=accept(sockSrv,(SOCKADDR*)(&addrClient),&len); //收到客户请求,打印欢迎消息 char sendBuf[100]; sprintf(sendBuf,"Welcome/t%s !/n",inet_ntoa(addrClient.sin_addr)); printf("%s/n",sendBuf); //接受数据 while(recv(sockConn,sendBuf,100,0)) { Sleep(1000); } printf("%s/n",sendBuf); //关闭套接字 closesocket(sockConn); } closesocket(sockSrv); WSACleanup(); return 0; } #include <Winsock2.h> #include <windows.h> #include <stdio.h> #pragma comment(lib,"ws2_32.lib") int main() { //加载套接字库 WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=MAKEWORD( 1 , 1 ); err=WSAStartup(wVersionRequested,&wsaData); if(err!=0) { printf("Error,EXIT!/n"); return -1; } if( LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!= 1 ) { WSACleanup(); return -1; } //创建套接字 SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0); char ip[100]; printf("输入对方IP,速度:"); scanf("%s",ip); SOCKADDR_IN addrSrv; //服务器地址信息 addrSrv.sin_addr.S_un.S_addr=inet_addr(ip); //服务器地址,主机字节序转化为网络字节序 addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000); //网络端口,转化为网络字节序 //向服务器发出连接请求 connect(sockClient,(SOCKADDR*)(&addrSrv),sizeof(SOCKADDR)); //发送数据 char recvBuf[100]; scanf("%s",recvBuf); send(sockClient,recvBuf,strlen(recvBuf)+1,0); //关闭套接字 closesocket(sockClient); return 0; }