我知道一个好的设计应该避免这种情况,但我不清楚这些系统API将如何表现.我也找不到相同的好文档.
方向上的任何指针都会有所帮助.
如果我有多个Java线程同时写入同一个Socket实例,是否会影响从同一个套接字读取的对象的完整性?即,对象的内容是否会被弄乱等等.对象的排序是随机的.
我正在尝试在IPC机制的管道和unix套接字之间进行选择.
两者都支持select()和epoll()伟大的功能.
现在,管道具有4kB(截至今天)"原子"写入,这由Linux内核保证.
在unix套接字的情况下是否存在这样的功能?我找不到任何明确说明这一点的文件.
假设我使用UNIX套接字,并从客户端写入x字节的数据.我确定当我的服务器崩溃时,这些x字节将写在套接字的服务器端select()吗?
在同一主题上,使用SOCK_DGRAM确保写入是原子的(如果可以保证),因为数据报应该是单个明确定义的消息?
那么使用SOCK_STREAM作为传输模式会有什么不同?
提前致谢.