设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

Linux下的进程间通信:套接字和信号(3)

发布时间:2019-06-04 16:18 所属栏目:117 来源:Marty Kalin
导读:客户端程序的设置代码和服务器端类似。两者主要的区别既不是在于监听也不在于接收,而是连接: if (connect(sockfd, (struct sockaddr*) saddr, sizeof(saddr)) 0) 对 connect 的调用可能因为多种原因而导致失败,

客户端程序的设置代码和服务器端类似。两者主要的区别既不是在于监听也不在于接收,而是连接:

  1. if (connect(sockfd, (struct sockaddr*) &saddr, sizeof(saddr)) < 0)

connect 的调用可能因为多种原因而导致失败,例如客户端拥有错误的服务器端地址或者已经有太多的客户端连接上了服务器端。假如 connect 操作成功,客户端将在一个 for 循环中,写入它的请求然后读取返回的响应。在会话后,服务器端和客户端都将调用 close 去关闭这个可读可写套接字,尽管任何一边的关闭操作就足以关闭它们之间的连接。此后客户端可以退出了,但正如前面提到的那样,服务器端可以一直保持开放以处理其他事务。

从上面的套接字示例中,我们看到了请求信息被回显给客户端,这使得客户端和服务器端之间拥有进行丰富对话的可能性。也许这就是套接字的主要魅力。在现代系统中,客户端应用(例如一个数据库客户端)和服务器端通过套接字进行通信非常常见。正如先前提及的那样,本地 IPC 套接字和网络套接字只在某些实现细节上面有所不同,一般来说,IPC 套接字有着更低的消耗和更好的性能。它们的通信 API 基本是一样的。

信号

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读