实验9 网编程-TCP.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验9 网编程-TCP

实验 实验目的: 实验要求: 熟练使用该节所介绍 实验器材: 软件: 1.安装了的vmware虚拟机 硬件:PC机一台 实验步骤: 首先配置Ubunt的网络,使其与Window的IP地址在同一网段。网络配置方法如下: 修改配置文件 sudo vi /etc/network/interfaces修改如下: auto lo iface lo inet loopback auto eth0 #iface eth0 inet static #address 192.168.X.X //修改IP地址为Windows IP地址+100 #gateway 192.168.X.X//修改 为 Window 的网关 #netmask 重启网络管理器 sudo service network-manager restart 重启网络服务: sudo /etc/init.d/networking force-reload == 重新加载网路配置文件 sudo /etc/init.d/networking restart 根据所学的TCP协议,服务器端和客户端进行通信的创建流程,实现客户端发送据到服务器端,服务器端接收数据。并将服务器端程序和客户端程序在两台电脑上进行运行演示。 服务器端的创建流程为 : 各个函数的使用方法参考实验文件夹下的 《嵌入式Linux网络编程.pdf》。 下面代码是设置socket可重绑定: //Set Sockopt int sinsize = 1; int ret = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, sinsize, sizeof(int)); if(ret != 0) { perror(Set sockopt fail!\n); exit -1; } server.c的参考代码如下: #includearpa/inet.h 修改上题代码用线程实现客户端和服务器端可以重复收发数据,模拟聊天。 其中server.c的参考代码如下: #include sys/types.h #includesys/socket.h #includestdio.h #includestring.h #includenetinet/in.h #include unistd.h #include stdlib.h #include pthread.h #includearpa/inet.h #define PORT 6000 #define SERVER_IP 01 void *routine(void * arg) { int newsockfd=*(int *) arg; char buf[10]; while(1) { bzero(buf,10); int size=recv(newsockfd,buf,sizeof(buf),0); buf[size]=\0; printf(recive from client is : %s,buf); } } int main() { char buf[10]=hello; //bzero(buf,10); int sockfd=socket(AF_INET,SOCK_STREAM,0); if(sockfd0) { perror(socket fail\n); return -1; } //Set Sockopt int sinsize = 1; int ret = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, sinsize, sizeof(int)); if(ret != 0) { perror(Set sockopt fail!\n); exit -1; } struct sockaddr_in s; memset(s,0,sizeof(s)); s.sin_family=AF_INET; s.sin_port=htons(6000); s.sin_addr.s_addr=inet_addr(01);//要求大端模式的端口号和IP地址 int bi=bind(sockfd,(struct sockaddr *)s,sizeof(struct sockaddr)); if(bi0) { perror(bind fail\n); } listen(sockfd,5); struct sockaddr_in c; int size=s

文档评论(0)

173****7830 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档