unix socket是如何唯一标识一个连接的?

落尘纷扰 2015-05-12 10:32:37
inet socket(网络套接字)使用服务器端和客户端的ip:port来唯一标识一个连接,那unix socket呢,用什么来标识呢?
具体到一个问题,有一个unix socket server,而本地有多个unix socket client去连接该server,那server是如何区分每个client的?
...全文
526 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
iasky 2015-05-13
  • 打赏
  • 举报
回复
对个个进程来说,fd就足够了把。
落尘纷扰 2015-05-12
  • 打赏
  • 举报
回复
引用 2 楼 wangzuxi 的回复:
[quote=引用 1 楼 jasonchen_gbd 的回复:] 我认为是这样的:client不需要去区分连接,因为client只和一个server通信。而server是通过accept得到的fd来区分client的。
是的,应用层通过fd就可以区分了,在内核里面fd也会跟进程有对应关系。[/quote] 多谢,我看到一篇博客说client要显式的bind才能让server区分多个客户端,就有些疑惑。那应该就是没有必要bind了,用fd就可以区分。另外,我本来以为多个client不能使用同一个socket文件的,后来发现也可以,估计是因为不同进程不共享文件描述符,实际上每个进程有自己的fd。 看来unix socket和inet socket区分还是挺大的,通信方式可以说完全不同。
zuxi 2015-05-12
  • 打赏
  • 举报
回复
引用 1 楼 jasonchen_gbd 的回复:
我认为是这样的:client不需要去区分连接,因为client只和一个server通信。而server是通过accept得到的fd来区分client的。
是的,应用层通过fd就可以区分了,在内核里面fd也会跟进程有对应关系。
落尘纷扰 2015-05-12
  • 打赏
  • 举报
回复
我认为是这样的:client不需要去区分连接,因为client只和一个server通信。而server是通过accept得到的fd来区分client的。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧