- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#define BACKLOG 10 void signal_urg(int signo); ? main() { /* sock fd 用于进行监听,new_fd 用于处理新的连接 */ int sock fd, new_fd ; /* 用于存储以前系统缺省的SIGURL 处理器的变量 */ void * old_signal_urg_handle ; /* 本地地址信息*/ struct sockaddr_in my_addr; /* 连接者的地址信息*/ struct sockaddr_in client_addr; int sin_size; int n ; char buff[100] ; /* 判断处理socket()是否出错,错则返回*/ if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){ perror(socket error); exit(1);}/* 清结构空间*/bzero((my_addr),sizeof(my_addr));my_addr.sin_family = AF_INET; my_addr.sin_port = htons(SERV_PORT);/* 将运行程序机器的IP 填充入s_addr */my_addr.sin_addr.s_addr = INADDR_ANY;/* 如果调用bind()失败,则给出错误提示,退出*/if (bind(sockfd, (struct sockaddr *)my_addr,sizeof(struct sockaddr)) == -1){ perror(bind error); exit(1);} /* 如果调用listen 失败,则给出错误提示,退出*/if (listen(sockfd, BACKLOG) == -1){ perror(listen error); exit(1);}/* 设置SIGURG 的处理函数 signal_urg */old_signal_urg_handle = signal(SIGURG, signal_urg);/* 更改套接字的宿主*/fcntl(sockfd, F_SETOWN, getpid()); while(1){ sin_size = sizeof(struct sockaddr_in); if ((new_fd =accept(sockfd,(struct sockaddr *)client_addr, sin_size))== -1) { perror(accept error); continue; } /* 提示出现的连接信息*/ printf(server: connection from %s\n, inet_ntoa(client_addr.sin_addr)); /* 建立一个子进程来处理与建立套接字的通信 */ if (!fork()) while(1) { if((n = recv(new_fd, buff, sizeof(buff)–1)) == 0) { printf(receiving end\n); break ; } buff[n] = 0 ; printf(Recv %d bytes: %s\n, n, buff); } /* 关闭new_fd 代表的这个套接字连接*/ close(new_fd); } } /* 等待所有的子进程都退出*/ while(waitpid(-1,NULL,WNOHANG) 0); /* 恢复系统以前对SIGURG 的处理器*/ signal(SIGURG, old_signal_urg_handle);} void signal_urg(int signo) { int m; char buf[100] ; printf(SIGURG received\n); m = recv(new_fd, buf, sizeof(buf)– 1, MSG_OOB); buf [m] = \0; printf(Recv %d OOB byte: %s\n , m, buf);} void signal_urg(int signo) { int
您可能关注的文档
最近下载
- 产品质量法考试题库及答案.doc VIP
- 人教精通版英语五年级上册全册教案(最全).doc VIP
- 必威体育精装版部编版二年级上册语文短文阅读专项突破训练及答案.pdf VIP
- 在新课改中创设有效学情境之我见Microsoft Word 文档.doc VIP
- 大学主席团竞选.pptx VIP
- 尼康D5200使用说明书_大陆_VRUM_SG(Sc)01.pdf VIP
- 2020年社区工作者面试题及答案.doc VIP
- 2024-2025学年高二数学选择性必修一《第二章 直线与圆的方程》测试卷附答案解析.pdf VIP
- 颈椎病完整PPT课件.pptx VIP
- 幼儿园大班语言《对比歌》课件.pptx VIP
有哪些信誉好的足球投注网站
文档评论(0)