用socket实现进程间通信.doc

用socket实现进程间通信.doc

ID:53875863

大小:132.00 KB

页数:9页

时间:2020-04-10

用socket实现进程间通信.doc_第1页
用socket实现进程间通信.doc_第2页
用socket实现进程间通信.doc_第3页
用socket实现进程间通信.doc_第4页
用socket实现进程间通信.doc_第5页
资源描述:

《用socket实现进程间通信.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验报告班级011291班学生姓名学号实验成绩一、实验题目:实现最简单实用的通信程序socket.二、实验目的:通过对socket的编写,了解socket通信的原理.了解TCP通信的整个过程.以及Linux下C语言的socket函数.三、实验设备及环境:1.硬件设备:PC机一台2.软件环境:安装Linux操作系统,并安装相关的程序开发环境,如CC++tshbsh等编程语言环境。四、实验内容及要求:用C语言编程实现linux简单的聊天室功能。n用户程序命名为2.c;服务器程序命名为1.cn要求client可以通过socket连接servernClient与server可以相互通信

2、,实现交互五.代码(针对实验1,2,请将最终源代码粘贴至此;正式报告中将下面例子删除)服务端:#include#include#include#include#defineUNIX_DOMAIN"/tmp/UNIX.domain"intmain(void){socklen_tclt_addr_len;intlisten_fd;intcom_fd;intret;inti;charrecv_buf[1024];charsend_buf[1024];intlen;structsockaddr_unc

3、lt_addr;structsockaddr_unsrv_addr;listen_fd=socket(PF_UNIX,SOCK_STREAM,0);if(listen_fd<0){perror("cannotcreatecommunicationsocket");return1;}//setserveraddr_paramsrv_addr.sun_family=AF_UNIX;strncpy(srv_addr.sun_path,UNIX_DOMAIN,sizeof(srv_addr.sun_path)-1);unlink(UNIX_DOMAIN);//bindsockfd&addrr

4、et=bind(listen_fd,(structsockaddr*)&srv_addr,sizeof(srv_addr));if(ret==-1){perror("cannotbindserversocket");close(listen_fd);unlink(UNIX_DOMAIN);return1;}//listensockfdret=listen(listen_fd,1);if(ret==-1){perror("cannotlistentheclientconnectrequest");close(listen_fd);unlink(UNIX_DOMAIN);return1;

5、}//haveconnectrequestuseacceptlen=sizeof(clt_addr);com_fd=accept(listen_fd,(structsockaddr*)&clt_addr,&len);if(com_fd<0){perror("cannotacceptclientconnectrequest");close(listen_fd);unlink(UNIX_DOMAIN);return1;}//readandprintfsentclientinfoprintf("=====info=====");for(i=0;i<4;i++){memset(rec

6、v_buf,0,1024);intnum=read(com_fd,recv_buf,sizeof(recv_buf));printf("client(%d)):%s",num,recv_buf);write(listen_fd,send_buf,sizeof(send_buf));}close(com_fd);close(listen_fd);unlink(UNIX_DOMAIN);return0;}客户端:#include#include#include#include#defineUN

7、IX_DOMAIN"/tmp/UNIX.domain"intmain(void){intconnect_fd;intret;charsnd_buf[1024],recv_buf[1024];inti;staticstructsockaddr_unsrv_addr;//creatunixsocketconnect_fd=socket(PF_UNIX,SOCK_STREAM,0);if(connect_fd<0){perror("cannotcreatecom

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

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

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