Chinaunix首页 | 论坛 | 博客
  • 博客访问: 47510
  • 博文数量: 20
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 145
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-16 15:07
文章分类

全部博文(20)

文章存档

2010年(15)

2008年(5)

我的朋友

分类: C/C++

2008-10-20 09:18:29

  进程可以采用如下方式打开FIFO:
  fd = open ("MyFifo" , O_RDONLY);
  这个系统调用内部实现的功能有:
  1  创建一个I/O端点并为其分配文件描述符
  2  将文件描述符绑定到外部名字“MyFifo”
  3  等待,直到出现写进程
  4  返回文件描述符,该文件描述符可以用于read系统调用
 
 套接字的工作流程与此类似,不同之处在于每一步都分解为一个独立的系统调用:
 
  socket创建端点并分配文件描述符。
 
  bind将该套接字与外部名字关联起来,让其他进程可以引用。
 
  listen将该套接字标识为可以接收来自其他套接字的连接。
 
  accept阻塞等待连接。
 
  connect连接到在accept中阻塞的套接字。
 
  服务器端:
 
  调用socket创建端点和文件描述符
  
  调用bind将套接字绑定到名字上
 
  调用listen将其标识为接收连接
 
  调用accept阻塞直到建立一条连接。然后accept使用新的文件描述符创建第二个套接字
 
  使用新的文件描述符在第二个套接字上进行读和写
 
  客户端:
 
  调用socket创建端点和文件描述符
 
  使用服务器被绑定的名字作为参数调用connect,阻塞直到服务器接受连接
 
  使用套接字的文件描述符进行读写数据
 
  (套接字的具体代码在  目录  “Linux系统编程里面”)
阅读(612) | 评论(0) | 转发(0) |
0

上一篇:Socket (TCP)

下一篇:线程的连接与分离

给主人留下些什么吧!~~