tcp套接口通信实验

tcp套接口通信实验

ID:35478383

大小:54.54 KB

页数:4页

时间:2019-03-25

tcp套接口通信实验_第1页
tcp套接口通信实验_第2页
tcp套接口通信实验_第3页
tcp套接口通信实验_第4页
资源描述:

《tcp套接口通信实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验二:tcp套接口通信实验一、实验目的学会使用标准的P0S1X套接口标准函数,满足客户端和服务器的通信需求。•建立tcp套接口•接收与发送tcp数据包•解析与处理tcp数据包二、预备知识熟悉tcp套接口函数使用方法三、实验预计时间30分钟左右四、实验步骤:a)根据《unix网络编程》书中的实例或者网上搜得的例子作为参考,编写・c和・h文件。分别编写服务器和客户端两端的代码,其中,由于是在一台机器上开发,因此客户端的代码访问服务器的地址定为127.0.0.1即可。b)看懂例子makefile。c)编译、运

2、行五、实验源代码及结果服务端程序TCPServer.c#inelude#include#include#inelude#inelude〈sys/types・h>#inelude〈netinet/in.h〉#inelude#ineludeh>intmain(intargc,char**argv){intsockfd,new_fd;/*监听socket:sockfd,数据传输socket

3、:new_fd*/structsockaddr_inmy_addr;/*本机地址信息*/structsockaddr_intheir_addr;/*客户地址信息*/unsignedintsin_size,myport,1isnum;if(argv[1])myport=atoi(argv[lj);elsemyport=6000;if(argv[2j)lisnum=atoi(argv[2j);else1isnum=2;if((sockfd=socket(PF1NET,SOCKSTREAM,0))==-1){p

4、error("socket");exit(1);}my_addr.sin_fami1y=PF_INET;myaddr.sinport二htons(myport);my_addr.sin_addr.s_addr=INADDR_ANY;bzero(&(myaddr・sinzero),0);if(bind(sockfd,(structsockaddr*)&my_addr,sizeof(structsockaddr))■1){perror(z/bind,z);exit(1);}if(listen(sockfd,l

5、isnum)==-1){perror("listen");exit(1);}while(1){sin_size二sizeof(structsockaddr_in);if((new_fd=accept(sockfd,(structsockaddr*)&their_addr,&sin_size))==-1){porror("accept");continue;}printf("server:gotconnectionfrom%s,z,inetntoa(theiraddr.sinaddr));if(!for

6、k()){/*子进程代码段*/if(send(newfd,"Hello,world!,z,14,0)==-1){perror("send");close(new_fd);exit(0);}}close(newfd);/*父进程不再需要该socket*/waitpid(-l,NULL,WN0HANG);/*等待子进程结束,清除子进程所占用资源*/}}客户端程序TcpClient.c#include#include#inelude#include

7、tring・h>#include#include#include#inelude〈sys/socket.h>#defineMAXDATASIZE100/*每次最大数据传输量*/intmain(intargc,char*argv[]){intsockfd,numbytes;charbuf[MAXDATASIZE];structhostent*he;structsockaddrintheiraddr;unsignedintmyport;i

8、f(argv[2j)myport=atoi(argv[2]);elsemyport=6000;if(argc!=3){fprintf(stderr,,zusage:%shostnameport",argv[0]);exit(1);}if((he=gethostbyname(argv[1]))==NULL){horrorC'gethostbyname");exit(1);}if((sockfd=socket(PF_INET,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。