预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《网络编程技术》实验报告 得分: 班级姓名学号实验名称实验二TCP套接字编程实验室号实验目的掌握单用户客户端跟服务器的连接和数据交互及处理。实验要求1. 认真阅读和掌握本实验的相关知识点。 2.上机编写并运行本程序。 3.保存程序的运行结果,并结合程序进行分析。实验内容实现一个基于TCP协议的服务器-客户端程序,要求完成以下功能。 客户端: 从命令行读入服务器的IP地址;并连接到服务器; 循环从命令行读入一行字符串,并传递给服务器,由服务器对字符串反转,并将结果返回客户程序,如果用户输入的是quit,则关闭连接; 客户程序显示反转后的字符串; 服务器端: 循环接收客户的连接请求,并显示客户的IP地址和端口号; 接收客户传来的字符串,反转后传递给客户;实验步骤或源代码服务器端: #include<sys/socket.h> #include<strings.h> #include<stdio.h> #include<netinet/in.h> #include<string.h> #include<unistd.h> #include<netdb.h> #include<sys/types.h> #include<arpa/inet.h> #include<stdlib.h> #defineMAXDATASIZE100 #definePORT2345 intmain() { intsockfd,connfd; structsockaddr_inserver,server; structsockaddr_inclient; socklen_tlen; charbuf[MAXDATASIZE]; charsendbuf[MAXDATASIZE]; inti,num,j; intopt=SO_REUSEADDR; if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) { perror("socket()error\n"); exit(1); } setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt)); bzero(&server,sizeof(server)); server.sin_family=AF_INET; server.sin_addr.s_addr=htonl(INADDR_ANY); server.sin_port=htons(PORT); if(bind(sockfd,(structsockaddr*)&server,sizeof(server))==-1) { perror("bind()error\n""); exit(1); } if(listen(sockfd,20)==-1) { perror("listen()error\n""); exit(1); } while(1) { len=sizeof(client); if((connfd=accept(sockfd,(structsockaddr*)&client,&len))==-1) { perror("accept()error\n""); exit(1); } printf("clientIPis%s,PORTis%d\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port)); while(1) { If((num=recv(connfd,buf,MAXDATASIZE,0))==-1); { Perror(“recv()error!\n”); Exit(1); } printf("recivebufis%s",buf); for(j=0;j<n;j++) sendbuf[n-j-2]=buf[j]; send(connfd,sendbuf,n,0); if(!strcmp(buf,”quit”))break; } close(connfd) } close(sockfd); } 客户端源代码如下: #include<stdio.h> #include<string.h> #include<errno.h> #include<unistd.h> #include<netinet/in.h> #include<netdb.h> #include<sys/types.h> #include<netinet/in.h> #include<sys/socket.h> #include<stdlib.h> #defineMAXDATASIZE100 #definePORT2345 intmain(intargc,char*argv[]) { stru