服务器端代码:#include <stdio.h>#include <strings.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#define PORT 1234#define BACKLOG 1int main(){ int listenfd,connectfd; struct sockaddr_in server; struct sockaddr_in client; socklen_t addrlen; if((listenfd=socket(AF_INET,SOCK_STREAM,0))==-1) { perror("socket() error."); exit(1); } int opt=SO_REUSEADDR; setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt)); bzero(&server,sizeof(server)); server.sin_family=AF_INET; server.sin_port=htons(PORT); server.sin_addr.s_addr=htonl(INADDR_ANY); if(bind(listenfd,(struct sockaddr *)&server,sizeof(server))==-1) { perror("Bind() error"); exit(1); } if(listen(listenfd,BACKLOG)==-1) { perror("listen() error.\n"); exit(1); } int len=sizeof(client); if((connectfd==accept(listenfd,(struct sockaddr *)&client,&addrlen))==-1) { perror("accept() error\n"); exit(1); } printf("You got a connection from client's ip is %s, port is %d\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port)); send(connectfd,"Welcome\n",8,0); close(connectfd); close(listenfd);}客户端代码:#include <stdio.h>#include <unistd.h>#include <strings.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#define PORT 1234#define MAXDATASIZE 100int main(int argc,char *argv[]){ int sockfd,num; char buf[MAXDATASIZE]; struct hostent *he; struct sockaddr_in server; if(argc!=2) { printf("Usage:%s<IP Address>\n",argv[0]); exit(1); } if((he=gethostbyname(argv[1]))==NULL) { printf("gethostbyname() error\n"); exit(1); } if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) { printf("socket() error\n"); exit(1); } bzero(&server,sizeof(server)); server.sin_family=AF_INET; server.sin_port=htons(PORT); server.sin_addr=*((struct in_addr *)he->h_addr); if(connect(sockfd,(struct sockaddr *)&server,sizeof(server))==-1) { printf("connect() error\n"); exit(1); } if((num=recv(sockfd,buf,MAXDATASIZE,0))==-1) { printf("recv() error\n"); exit(1); } buf[num-1]='\0'; printf("server message:%s\n",buf); close(sockfd);}为什么我客户端用127.0.0.1测试的时候,客户端不输出服务器发给客户端的Welcone
添加回答
举报
0/150
提交
取消