允许从一个进程读取数据,而另一个进程写入到Erlang的套接字中? 我试过了,它似乎工作,但我想知道它是否万无一失。从两个进程访问套接字
回答
根据我对源代码的理解,一个(gen_tcp,至少)socket send/recv归结为发送的erlang:port_command和套接字端口上的recv的erlang:port_control(请参见prim_inet。 ERL)。
对于port_command:“如果端口繁忙,调用进程将被暂停,直到端口不再忙。” port_control也是一个同步操作。
纠正我,如果我错了,但它似乎是完全安全的使用多个进程来读取和写入套接字。
虽然有一条评论,如果“拥有”过程死亡,那么套接字将关闭。所以这两个进程之间不是对称的使用。 – 2010-09-06 11:16:40
我很确定我记得这样做没有任何问题。
他们中的任何一个都可以编写,但如果您的所有进程都可以接收,则无意义。它会溢出所有不预期消息的邮箱。您只需要定义一个Pid来接收数据包,默认情况下它就是创建套接字的任何Pid。您可以通过设置控制进程来设置任何Pid来控制套接字。
如果使用{active,false}和recv()从套接字获取数据会怎样?虽然我不确定,但我希望几个进程都可以调用recv(),这样可以正常工作。 – 2010-09-06 20:57:00
这是真的。我很难想象在不同的进程调用recv的socket间传递。更好地使活动并有一个专门的循环接收{tcp,Sock,Data}。至少这是我习惯与他们合作的方式。 – 2010-09-09 02:16:14
- 1. 如何从另一个套接字访问tcp套接字?
- 2. 使组播套接字可以从另一个线程访问
- 3. 通过两个网络接口进行套接字编程simuntaneoulsy
- 4. 如何在NodeJS中访问子进程的套接字?
- 5. 两个进程共享UDP套接字,正在重新启动
- 6. 从同一进程访问两个安全(Kerberos)Hadoop/HBase集群
- 7. Python:停止套接字接收进程
- 8. 在一个线程中创建两个套接字连接
- 9. Python通过套接字连接访问远程打印机
- 10. 从另一个进程访问对象
- 11. 从功能内访问全局套接字时遇到问题
- 12. 连接两个客户端套接字
- 13. 两个模拟器问题之间的Eclipse套接字连接?
- 14. twisted.web.client.Agent的访问套接字选项
- 15. 如何访问VBA中的套接字?
- 16. 使用套接字访问URL(w/cookies)?
- 17. Boost套接字Async_Connect访问冲突
- 18. 顺序访问异步套接字
- 19. 在Android中的两个进程之间存在一个打开的套接字
- 20. 创建两个线程同时侦听两个套接字连接。
- 21. 套接字远程连接问题C
- 22. 套接字编程。连接问题(...)api
- 23. 如何从另一个文件(多线程Java套接字编程)访问名为“numberPart”的字符串
- 24. 在进程之间传输套接字?
- 25. 使用J2ME进行套接字编程
- 26. PowerShell - 捕获套接字和进程
- 27. HTML5从一个html页面打开两个网络套接字
- 28. 响应没有进入(android套接字编程/ tcp/ip套接字编程)
- 29. UDP在同一进程中的两个套接字之间的组播
- 30. 两个UNIX进程相同的TCP套接字上写的同时
谢谢大家的回答。 Summa summarum:多个进程可以安全地写入,但只有一个进程可以从套接字读取。 – mihannus 2010-09-05 20:53:33