欢迎来到天天文库
浏览记录
ID:48580297
大小:45.00 KB
页数:6页
时间:2020-02-26
《tcp套接字编程.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《网络编程技术》实验报告得分:班级姓名学号实验名称实验二TCP套接字编程实验室号实验目的掌握单用户客户端跟服务器的连接和数据交互及处理。实验要求1.认真阅读和掌握本实验的相关知识点。2.上机编写并运行本程序。3.保存程序的运行结果,并结合程序进行分析。实验内容实现一个基于TCP协议的服务器-客户端程序,要求完成以下功能。客户端:从命令行读入服务器的IP地址;并连接到服务器;循环从命令行读入一行字符串,并传递给服务器,由服务器对字符串反转,并将结果返回客户程序,如果用户输入的是quit,则关闭连接;客
2、户程序显示反转后的字符串;服务器端:循环接收客户的连接请求,并显示客户的IP地址和端口号;接收客户传来的字符串,反转后传递给客户;实验步骤或源代码服务器端:#include#include#include#include#include#include#include#include#include3、>#include#defineMAXDATASIZE100#definePORT2345intmain(){intsockfd,connfd;structsockaddr_inserver,server;structsockaddr_inclient;socklen_tlen;charbuf[MAXDATASIZE];charsendbuf[MAXDATASIZE];inti,num,j;intopt=SO_REUSEADDR;if((sockfd=socket(AF_INET4、,SOCK_STREAM,0))==-1){perror("socket()error");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(so5、ckfd,(structsockaddr*)&server,sizeof(server))==-1){perror("bind()error"");exit(1);}if(listen(sockfd,20)==-1){perror("listen()error"");exit(1);}while(1){len=sizeof(client);if((connfd=accept(sockfd,(structsockaddr*)&client,&len))==-1){perror("accept(6、)error"");exit(1);}printf("clientIPis%s,PORTis%d",inet_ntoa(client.sin_addr),ntohs(client.sin_port));while(1){If((num=recv(connfd,buf,MAXDATASIZE,0))==-1);{Perror(“recv()error!”);Exit(1);}printf("recivebufis%s",buf);for(j=0;j7、=buf[j];send(connfd,sendbuf,n,0);if(!strcmp(buf,”quit”))break;}close(connfd)}close(sockfd);}客户端源代码如下:#include#include#include#include#include#include#include#include8、>#include#include#defineMAXDATASIZE100#definePORT2345intmain(intargc,char*argv[]){structsockaddr_inserver;charbuf[MAXDATASIZE];intsockfd,num;structhostent*he;if(argc!=2){printf(“youmustinputlikethis:%s”,argv[
3、>#include#defineMAXDATASIZE100#definePORT2345intmain(){intsockfd,connfd;structsockaddr_inserver,server;structsockaddr_inclient;socklen_tlen;charbuf[MAXDATASIZE];charsendbuf[MAXDATASIZE];inti,num,j;intopt=SO_REUSEADDR;if((sockfd=socket(AF_INET
4、,SOCK_STREAM,0))==-1){perror("socket()error");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(so
5、ckfd,(structsockaddr*)&server,sizeof(server))==-1){perror("bind()error"");exit(1);}if(listen(sockfd,20)==-1){perror("listen()error"");exit(1);}while(1){len=sizeof(client);if((connfd=accept(sockfd,(structsockaddr*)&client,&len))==-1){perror("accept(
6、)error"");exit(1);}printf("clientIPis%s,PORTis%d",inet_ntoa(client.sin_addr),ntohs(client.sin_port));while(1){If((num=recv(connfd,buf,MAXDATASIZE,0))==-1);{Perror(“recv()error!”);Exit(1);}printf("recivebufis%s",buf);for(j=0;j7、=buf[j];send(connfd,sendbuf,n,0);if(!strcmp(buf,”quit”))break;}close(connfd)}close(sockfd);}客户端源代码如下:#include#include#include#include#include#include#include#include8、>#include#include#defineMAXDATASIZE100#definePORT2345intmain(intargc,char*argv[]){structsockaddr_inserver;charbuf[MAXDATASIZE];intsockfd,num;structhostent*he;if(argc!=2){printf(“youmustinputlikethis:%s”,argv[
7、=buf[j];send(connfd,sendbuf,n,0);if(!strcmp(buf,”quit”))break;}close(connfd)}close(sockfd);}客户端源代码如下:#include#include#include#include#include#include#include#include8、>#include#include#defineMAXDATASIZE100#definePORT2345intmain(intargc,char*argv[]){structsockaddr_inserver;charbuf[MAXDATASIZE];intsockfd,num;structhostent*he;if(argc!=2){printf(“youmustinputlikethis:%s”,argv[
8、>#include#include#defineMAXDATASIZE100#definePORT2345intmain(intargc,char*argv[]){structsockaddr_inserver;charbuf[MAXDATASIZE];intsockfd,num;structhostent*he;if(argc!=2){printf(“youmustinputlikethis:%s”,argv[
此文档下载收益归作者所有