免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络编程技术实验报告得分: 班级姓名学号实验名称实验二 TCP套接字编程实验室号实验目的掌握单用户客户端跟服务器的连接和数据交互及处理。实验要求1.认真阅读和掌握本实验的相关知识点。2上机编写并运行本程序。3保存程序的运行结果,并结合程序进行分析。实验内容实现一个基于TCP协议的服务器-客户端程序,要求完成以下功能。客户端:从命令行读入服务器的IP地址;并连接到服务器;循环从命令行读入一行字符串,并传递给服务器,由服务器对字符串反转,并将结果返回客户程序,如果用户输入的是quit,则关闭连接;客户程序显示反转后的字符串;服务器端:循环接收客户的连接请求,并显示客户的IP地址和端口号;接收客户传来的字符串,反转后传递给客户;实验步骤或源代码服务器端:#include#include#include#include#include#include#include#include#include#include#define MAXDATASIZE 100#define PORT 2345int main()int sockfd, connfd; struct sockaddr_in server, server; struct sockaddr_in client; socklen_t len; char bufMAXDATASIZE; char sendbufMAXDATASIZE; int i, num,j;int opt=SO_REUSEADDR; if(sockfd = socket(AF_INET, SOCK_STREAM, 0)=-1)perror(socket() errorn);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, (struct sockaddr *)&server, sizeof(server)=-1) perror(bind() errorn); exit(1); if(listen(sockfd,20)=-1) perror(listen() errorn); exit(1); while (1) len = sizeof(client); if(connfd = accept(sockfd, (struct sockaddr *)&client, & len)=-1) perror(accept() errorn);exit(1);printf(client IP is %s ,PORT is %dn, 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(recive buf is %s,buf); for(j=0;jn;j+) sendbufn-j-2=bufj; send(connfd, sendbuf, n,0);if (!strcmp(buf,”quit”) break; close(connfd) close(sockfd);客户端源代码如下:#include #include #include #include #include #include #include #include #include #include #define MAXDATASIZE 100#define PORT 2345int main(int argc, char *argv) struct sockaddr_in server; char bufMAXDATASIZE; int sockfd, num;struct hostent *he; if (argc != 2) printf(“you must input like this:%s ”,argv0): exit(1); if (he=gethostbyname(argv1) = NULL) Perror(“gethostbyname() error!n”); exit(1); if(sockfd = socket(AF_INET, SOCK_STREAM, 0)=-1) Perror(“socket() error!n”); exit(1); bzero(&server, sizeof(server); server.sin_family = AF_INET; server.sin_addr = *(struct in_addr *)he-h_addr); server.sin_port = htons(PORT); if(connect(sockfd, (struct sockaddr *)&server, sizeof(server)=-1) Perror(“connect() error!n”); exit(1); while (fgets(buf, MAXDATASIZE, stdin) != NULL) send(sockfd, buf, strlen(buf),0); if(num=recv(sockfd, buf, MAXDATASIZE,0)=-1) Perror(“recv() error!n”); break; else printf(recv buf is :%sn ,buf); close(sockfd);实验结论、心得体会1.在写客户端时,将清零函数bzero()置于给服务器赋值之前,导
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西国际博览事务局招聘急需紧缺高层次人才1人历年真题汇编带答案解析
- 2026中国牧工商集团有限公司校园招聘8人笔试模拟试卷带答案解析
- 2025贵州安顺镇宁县总工会招聘工会社会工作者2人历年真题库附答案解析
- 2025年西安交大一附院医学影像科招聘历年真题汇编带答案解析
- 2026广东省选调生招录1715人备考公基题库带答案解析
- 2025山东聊城临清市卫健系统事业单位招聘工作人员65人笔试备考试卷附答案解析
- 2025内蒙古呼和浩特迎新路东社区卫生服务中心招聘工作人员2人笔试备考试卷附答案解析
- 2025福建三明学院招聘科研助理1人历年真题库附答案解析
- 2025紫荆学院(中央政府驻港联络办深圳联络部)招聘事业编制教研岗位人员2人备考公基题库附答案解析
- 2025浙江杭州市委党校萧山区分校招聘事业人员1人参考题库带答案解析
- 无人机组装与调试 课件 项目三 垂直起降无人机组装调试
- (2024年版)重庆市建筑工程施工图设计文件编制技术规定
- 配偶财产赠与协议书
- 住院医师规范化培训外科泌尿外科基地制度汇编
- GB/T 3045-2024普通磨料碳化硅化学分析方法
- 地磅维保合同范本
- 中考英语专题题型之选词填空解题技巧
- 小学道德与法治教学研究报告
- 回弹法检测水泥基灌浆材料抗压强度技术规程
- 超市社会实践活动报告
- 好老师是民族的希望
评论
0/150
提交评论