社区
Linux/Unix社区
帖子详情
Unix domain socket可用于同一个进程中的不同线程么?
谭海燕
2012-02-27 09:17:34
准备用Unix domain socket 写点东西。
咨询下,Unix domain socket可以用于同一个进程中的不同线程间发送数据么?
...全文
485
10
打赏
收藏
Unix domain socket可用于同一个进程中的不同线程么?
准备用Unix domain socket 写点东西。 咨询下,Unix domain socket可以用于同一个进程中的不同线程间发送数据么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Liv2005
2012-02-28
打赏
举报
回复
感觉同上,如果要做unix socket要做的话,是可以做的,只不过线程间用这个通信感觉很奇怪...呵呵
不知道LZ的业务是什么,猜测管道应该更合适吧...
Arnold9009
2012-02-28
打赏
举报
回复
Unix domain socket 一般多用于本机不同进程间通信吧
同一进程的不同线程之间,通过管道或者共享内存不是更方便一些么,难道数据量特别大?
justkk
2012-02-28
打赏
举报
回复
一个进程中的两个线程,一个作为服务器,另外一个作为客户端,两者通过Unix domain socket通信?
justkk
2012-02-28
打赏
举报
回复
那应该没问题
也可以考虑使用socketpair()
谭海燕
2012-02-28
打赏
举报
回复
[Quote=引用 6 楼 liv2005 的回复:]
感觉同上,如果要做unix socket要做的话,是可以做的,只不过线程间用这个通信感觉很奇怪...呵呵
不知道LZ的业务是什么,猜测管道应该更合适吧...
[/Quote]
管道其实和unix domain socket差不多。
谭海燕
2012-02-28
打赏
举报
回复
[Quote=引用 4 楼 justkk 的回复:]
一个进程中的两个线程,一个作为服务器,另外一个作为客户端,两者通过Unix domain socket通信?
[/Quote]
对。就是要这么做。综合考虑,unix domain socket最符合我的需求。
谭海燕
2012-02-28
打赏
举报
回复
呵呵。多谢各位的建议。我之所以怎么做,主要是跨语言,C,C++,JAVA, JS通用组件。
qq120848369
2012-02-27
打赏
举报
回复
DOMAIN和SOCKET的区别:
1,SOCKET绑定在IP:PORT上,DOMAIN绑定在PATH上.
2,SOCKET通过connect调用后, 可以由内核分配本地地址, 而DOMAIN不行, 所以DOMAIN的服务端和客户端都要有自己的PATH去绑定. 觉得客户端指定PATH没意义的话可以tmpfile系列函数随机生成即可, 因为它保证生成的文件不存在于文件系统中, 这也是DOMAIN调用BIND对PATH的要求, 即必须不存在.
谭海燕
2012-02-27
打赏
举报
回复
[Quote=引用 1 楼 qq120848369 的回复:]
当然可以, 当作SOCKET用就可以了.
[/Quote]
恩。没怎么去了解过domain socket的原理。如果是tcp的话,肯定是可以的,因为内核会为每个socket随机分配一
个端口号。但是,domain,好像是通过文件,以及文件描述符来识别的。同一个进程内的不同线程,共享文件
描述符。
不知道你何高见。
qq120848369
2012-02-27
打赏
举报
回复
当然可以, 当作SOCKET用就可以了.
java基于
UNIX
域套接字(
unix
dom
ain
socket
)连接redis
通过java
socket
和lettuce框架基于
UNIX
域套接(
UNIX
Dom
ain
Socket
)协议实现redis连接和操作,使用redis.sock文件
使用
unix
sock_
dom
ain
的范例(高效的IPC通信方式)
使用
unix
sock_
dom
ain
的范例(高效的IPC通信方式)
linux 多
线程
通信
socket
linux下面的
线程
通信,包括
unix
域的
线程
和
socket
通信。
基于linux的
socket
多
线程
通信
本程序为基于linux的
socket
多
线程
通信,实现了服务器与客户端的交互信息,并在服务器端显示客户的Ip,port,以利于服务器辨认是哪一个客户端发来的信息,程序调试正确,具有很大的借鉴与参考价值
Linux网络编程-
socket
编程详解与高并发服务器设计
内容概要:本文详细介绍了Linux网络编程的基础知识,涵盖网络协议(如TCP、UDP)、网络应用程序设计模式(C/S和B/S模式)、分层模型(OSI七层模型和TCP/IP四层模型)、网络通信过程、套接字编程、高并发服务器实现(多
进程
、多
线程
、多路I/O转接)、以及网络名词术语解析。文
中
深入探讨了TCP和UDP的区别,包括连接建立与关闭、数据传输、流量控制、错误处理等方面,并通过代码示例展示了服务器和客户端的实现。此外,文章还涉及了高并发服务器的
不同
实现方式,如多
进程
、多
线程
、select、poll、epoll等,以及它们各自的优缺点。最后,简要介绍了
UNIX
Dom
ain
Socket
和一些网络名词术语。 适用人群:具备一定编程基础,尤其是熟悉C语言和Linux环境的开发者,以及对网络编程和高并发处理感兴趣的工程师。
Linux/Unix社区
23,224
社区成员
74,537
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章