网络编程sever-client

mac2026-05-20  5

// hello sever win.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "stdio.h" #include"stdlib.h" #include "winsock2.h" #pragma comment(lib,"ws2_32.lib") void Errorhandling(char* messege); void Errorhandling(char* message) { fputs(message,stderr); fputc('\n',stderr); exit(1); } int main(int argc,char* argv[]) { WSADATA wsaData; SOCKET hServSock,hClntSock; SOCKADDR_IN servAddr,clntAddr; int szClntAddr; char message[]="Hello world! "; if (argc!=2) { printf( "Usage:%s<port>\n",argv[0]); exit(1); } if (WSAStartup(MAKEWORD(2,2),&wsaData)!=0) Errorhandling("WSAStartup() error!"); hServSock=socket(PF_INET,SOCK_STREAM,0); if (hServSock==INVALID_SOCKET) Errorhandling("socket() error"); memset(&servAddr,0,sizeof(servAddr)); servAddr.sin_family=AF_INET; servAddr.sin_addr.s_addr=htonl(INADDR_ANY); servAddr.sin_port=htons(atoi(argv[1])); if (bind(hServSock,(SOCKADDR*)&servAddr,sizeof(servAddr))==SOCKET_ERROR) Errorhandling("bind() error"); if (listen(hServSock,5)==SOCKET_ERROR) Errorhandling("listen() error"); szClntAddr=sizeof(clntAddr); hClntSock=accept(hServSock,(SOCKADDR*)&clntAddr,&szClntAddr); if (hClntSock==INVALID_SOCKET) Errorhandling("accept() error"); send(hClntSock,message,sizeof(message),0); closesocket(hClntSock); closesocket(hServSock); WSACleanup(); system("pause"); return 0; } // hello_client_win.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include"stdio.h" #include "stdlib.h" #include "winsock2.h" #pragma comment(lib,"ws2_32.lib") void ErrorHandling(char* message); int main(int argc, _TCHAR* argv[]) { WSADATA wsaData; SOCKET hSocket; SOCKADDR_IN servAddr; char message[30]; int strlen; if (argc!=3) { printf("Usage: %s <IP> <port>\n",argv[0]); exit(1); } if (WSAStartup(MAKEWORD(2,2),&wsaData)!=0) ErrorHandling("WSAStarup() error!"); hSocket=socket(PF_INET,SOCK_STREAM,0); if(hSocket==INVALID_SOCKET) ErrorHandling("socket() error"); memset(&servAddr,0,sizeof(servAddr)); servAddr.sin_family=AF_INET; servAddr.sin_addr.s_addr=inet_addr(argv[1]); servAddr.sin_port=htons(atoi(argv[2])); if (connect(hSocket,(SOCKADDR*)&servAddr,sizeof(servAddr))==SOCKET_ERROR) ErrorHandling("connet() error"); strlen=recv(hSocket,message,sizeof(message)-1,0); if(strlen==-1) ErrorHandling("read() error!"); printf("Message from server: %s \n",message); closesocket(hSocket); WSACleanup(); system("pause"); return 0; } void ErrorHandling(char* message) { fputs(message,stderr); fputc('\n',stderr); exit(1); }
最新回复(0)