- 4
- 0
- 约3.58千字
- 约 7页
- 2022-12-27 发布于江苏
- 举报
实验四远程进程 socket 通信参考答案
( 一 ) 实 验 目 的
系统V的:CPC通信机制只支持同一 台计算机内的进程间通信。BSD UNIX,系统V和 Solaris 等操作系统所提供的 Socked(插座,套接字)是最重要的进程通信工具,可支持广域 网上异种机器之问的通信,包括各类 UNIX 系统和使用最为广泛的个人计算机。通过本实验能使 学牛进一步理解套接字通信的基本原理和机制,通过编制一个实用的异机 socket 通信程序,深
入掌握套接字编程的方法和细节。
( 二 ) 实 验 题 目
分别编一个客机程序和服务器程序,首先建立客户程序与服务器之间正确的 socket 连结, 然后利用 send 和 recv 函数,客户程序将一个较长的文本文件(如几k字节)中的数据发送给
服务器。要求服务器全部正确地接收到所有的数据(一个也不能少),并将其存入一个文件。
( 三 ) 源 代 码
服务器端:
#include stdio.h
#include sys/types.h
#include sys/socket.h
#include netinet/in-h
#include vnetdb.h
#i nclude sys/stat.h
t nce(infchar**argv)
{
i nt sockfd,newsockfd,fd,n,1ength;
_struct sockaddr in server;
_
char buff[1024],rbuf[1024]严path;
I/open a socket and make the address
sockfd=socket(AF . INET,SOCK STREAM,0);/*生成实接字*/
server.sin fandly=AF INET;
_ _ _server.sin addr.s
_ _ _
server.sin port=0;
/*生成套接字*/
/*选择一个已释放的端口号*/
//bind the socket with address
if(bind(sockfd,(struct sockaddr戏)server,sizeof(server))0)return 1;
length=sizeof (server); /*获取并打卬端口号*/
//pr int the info rmati on of the socket for die nt
if(getsockname(sockfd,(struct sockaddr衣)dserver,1ength)0)printf(getting socket
name error\rT);
printf(getting socket name:%sln,serversiruaddr.s addr); printf(socket port #%d\rT,ntohs(server.sin port));
I/wai t for connecting
listen(sockfd,5);
whiled){
newsockfd=accept(sockfd,(struct sockaddr *)0,(int *)0);
I/accept a new connect
if(!fork()){ /*子进程*/
close(sockfd);
bzero(buff,sizeof (buff)); /*调用库函数,清缓冲区*/
ll receive the file from client fd=open(out ·txt*,O WRONLYIO CREAT|
O TRUNC,0644); sleep(I);
while((count=recv(sockfd,rbuf,1en,0))0){n=write(fd,rbuf,count);
}
close(fd);
exit(0);
]
close(newsockfd);
2
return 0;
客户端:
#include stdio.h#include sys/types.h
#include sys/socket.h#include netinet/in · h#include netdb.h#incl ude fcml.h #include sys/stat.h
客户方程序
您可能关注的文档
- 全国新课标卷高考语文试题双向细目表-20220927165709.docx
- 机械设计设计用于带式运输机一级圆柱齿轮减速器.docx
- 用水吸收丙酮的课程设计.docx
- 2021年深圳地铁集团公司组织架构和部门职能.docx
- E-commerce-电子商务 课件.ppt
- 河北邢台市2025-2026学年高二上学期2月期末语文试题(含解析).docx
- 河北邢台市2025-2026学年高一上学期2月期末物理试题(含解析).docx
- 第3课《安塞腰鼓》教学设计 2025-2026学年统编版语文八年级下册.docx
- 第1课《社戏》教学设计 2025-2026学年统编版语文八年级下册.docx
- 第2课《回延安》教学设计 2025-2026学年统编版语文八年级下册.docx
- 河北盐山中学等校2025-2026学年上学期高三一模化学试卷(含解析).docx
- 河北正定中学2025-2026学年高一上学期期末考试物理试卷(含解析).docx
- 河北张家口市怀安县2025-2026学年第一学期期末教学综合评价八年级地理试卷(含解析).docx
- 河南安阳市殷都区2025-2026学年第一学期期末教学质量检测七年级地理试卷(含解析).docx
- 河南安阳市滑县2025一2026学年第一学期期末学业质量监测八年级地理试题(含解析).docx
- 河南安阳市林州市2025-2026学年上学期期末考试高一政治试题(含解析).docx
- 河南焦作市武陟县第一中学2025-2026学年高一上学期1月月考语文试卷(含解析).docx
- 河南济源市2025-2026学年上学期期末学业质量调研七年级历史试卷(含解析).docx
- PICC导管并发症的紧急处理与护理.pptx
- 河南鹤壁市2025-2026学年高二上学期期末考试生物试题(含解析).docx
原创力文档

文档评论(0)