- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IO多路复用例子
/*客户:从命令行接收服务器地址,并向服务器发起连接请求,连接成功后,从标准输入接收字符串并发送给服务器,等待服务器响应并打印接收的信息。*/#include unistd.h#include sys/socket.h#include netinet/in.h#include netdb.h#include stdio.h#include stdlib.h#include string.h#define PORT 2088#define MAXLINE 100int main(int argc, char *argv[]){int?? fd,n;char sendline[MAXLINE],recvline[MAXLINE];struct hostent * he;struct sockaddr_in server;if (argc != 2){?? printf(Usage: %s IP address\n, argv[0]);?? exit(1);}//获取主机名if ((he = gethostbyname(argv[1])) == NULL) {?? perror(gethostbyname error.);?? exit(1);}if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {?? perror(Create socket failed.);?? exit(1);}//初始化地址结构bzero(server, sizeof(server));server.sin_family = AF_INET;server.sin_port = htons(PORT);server.sin_addr = *((struct in_addr *) he-h_addr);//inet_pton(AF_INET,argv[1],server.sin_addr);也行//连接到服务器if (connect(fd, (struct sockaddr *)server, sizeof(struct sockaddr)) == -1) {?? perror(connect failed!);?? exit(1);}else printf(Connect Success!\n);//输入客户name,服务器显示printf(Input your name:);if(fgets(sendline,MAXLINE,stdin)!=NULL)write(fd,sendline,strlen(sendline));//循环从命令行读入一行字符串,并发送到服务器 printf(Input a string:);??? while((fgets(sendline,MAXLINE,stdin))!=NULL){???? //发送数据到服务器 ?? write(fd,sendline,strlen(sendline));?? //接收从服务器发来的数据?? if((n=recv(fd,recvline,MAXLINE,0))==0)??? ?? { ??? perror(server terminated prematurely!);??? return;?? }?? recvline[n]=\0;?? printf(recieve data from server:%s\n,recvline);?? printf(Input a string:);?? //fputs(recvline,stdout);}
//关闭fdclose(fd);exit(0);}
/*服务器利用I/O复用技术,实现同时向多个客户提供服务。要求:
服务器:接收客户连接请求,并打印客户IP地址及端口号,然后接收客户发来的字符串,并打印该字符串和其来自与哪个客户。同时向客户返回该字符串。当某一客户断开连接时,要求服务器打印该客户输入的所有字符。*/#include unistd.h#include sys/types.h#include sys/socket.h#include netdb.h#include netinet/in.h#include arpa/inet.h#include errno.h
#include stdio.h#include stdlib.h#include strings.h#include string.h#include malloc.h#include sys/select.h#includefcntl.h#define MAXSIZE
您可能关注的文档
最近下载
- 四川省2004年肺结核流行特征及空间聚集性分析.pdf VIP
- 《小肠梗阻的诊断与治疗中国专家共识(2023版)》解读.pptx
- 回收、暂存、中转废矿物油与含矿物油废物项目突发环境事件应急预案.docx
- 电路与电子学-课程教学大纲.doc VIP
- 安徽省A10联盟2023-2024学年高二上学期11月期中考试物理试题及答案.pdf
- 第三届全国新能源汽车关键技术技能大赛(汽车电气装调工赛项)考试题库资料(含答案).pdf
- 国家科技创新政策汇编 202305.pdf
- 东华大学819有机化学2018年考研真题.pdf
- 精品推荐企业财务制度通用版汇总.docx
- 2016年东华大学硕士研究生入学考试819有机化学考研真题.pdf
文档评论(0)