ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:111.53KB ,
资源ID:29875625      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29875625.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用socket实现进程间通信.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

用socket实现进程间通信.docx

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

2、ver Client与server可以相互通信,实现交互 五 代码(针对实验1,2,请将最终源代码粘贴至此;正式报告中将下面例子删除)服务端:#include #include #include #include #define UNIX_DOMAIN /tmp/UNIX.domainint main(void) socklen_t clt_addr_len; int listen_fd; int com_fd; int ret; int i; char recv_buf1024; char send_buf1024; int len; struct sockaddr_un clt_addr;

3、 struct sockaddr_un srv_addr; listen_fd=socket(PF_UNIX,SOCK_STREAM,0); if(listen_fd0) perror(cannot create communication socket); return 1; /set server addr_param srv_addr.sun_family=AF_UNIX; strncpy(srv_addr.sun_path,UNIX_DOMAIN,sizeof(srv_addr.sun_path)-1); unlink(UNIX_DOMAIN); /bind sockfd & addr

4、 ret=bind(listen_fd,(struct sockaddr*)&srv_addr,sizeof(srv_addr); if(ret=-1) perror(cannot bind server socket); close(listen_fd); unlink(UNIX_DOMAIN); return 1; /listen sockfd ret=listen(listen_fd,1); if(ret=-1) perror(cannot listen the client connect request); close(listen_fd); unlink(UNIX_DOMAIN);

5、 return 1; /have connect request use accept len=sizeof(clt_addr); com_fd=accept(listen_fd,(struct sockaddr*)&clt_addr,&len); if(com_fd0) perror(cannot accept client connect request); close(listen_fd); unlink(UNIX_DOMAIN); return 1; /read and printf sent client info printf(n=info=n); for(i=0;i4;i+) m

6、emset(recv_buf,0,1024); int num=read(com_fd,recv_buf,sizeof(recv_buf); printf(client (%d) :%s n,num,recv_buf); write(listen_fd,send_buf,sizeof(send_buf); close(com_fd); close(listen_fd); unlink(UNIX_DOMAIN); return 0;客户端:#include #include #include #include #define UNIX_DOMAIN /tmp/UNIX.domainint mai

7、n(void) int connect_fd; int ret; char snd_buf1024,recv_buf1024; int i; static struct sockaddr_un srv_addr;/creat unix socket connect_fd=socket(PF_UNIX,SOCK_STREAM,0); if(connect_fd0) perror(cannot create communication socket); return 1; srv_addr.sun_family=AF_UNIX; strcpy(srv_addr.sun_path,UNIX_DOMA

8、IN);/connect server ret=connect(connect_fd,(struct sockaddr*)&srv_addr,sizeof(srv_addr); if(ret=-1) perror(cannot connect to the server); close(connect_fd); return 1; memset(snd_buf,0,1024); strcpy(snd_buf,message from client);/send info server for(i=0;i4;i+) gets(snd_buf); write(connect_fd,snd_buf,

9、sizeof(snd_buf); memset(recv_buf,0,1024); int num=read(ret,recv_buf,sizeof(recv_buf); printf(server (%d) :%s n,num,recv_buf); close(connect_fd); return 0;七、实验结果(请将最终实验结果截图粘贴至此,实验2示例已给出,正式报告中请删除)在linux条件下编译: 输入 cd work11,进入文件work11(本机程序1.c和2.c放在文件work11中)。 输入gcc 1.c o 1对程序1.c进行编译 输入gcc 2.c o 2对程序2.c进行编译如果没错误,就不会提示错误,可以正常操作。具体操作见下截图。运行1.exe和2.exe程序,输入指令./1 & ./2,程序就会自动运行,截图如下: 然后即可进入交互式对话,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1