我正在使用示例客户端程序和服务器应用程序。客户端代码来自(https://github.com/nori0428/mod_websocket/blob/master/src/mod_websocket_socket.c#L19-L68),服务器程序来自(http://www.thegeekstuff.com/2011/12/c-socket-programming/)。客户端和套接字程序工作正常,除非我使用SO_BINDTODEVICE将服务器套接字绑定到eth0或eth1 n/w接口。如果我不将服务器套接字绑定到特定的n/w接口,或者如果我将服务器套接字绑定到loopback ip,则客户机服务器程序正在工作。但是如果我绑定到eth0/eth1,则poll与pollhup和pollerr失败。由于连接被拒绝,errno返回。但服务器正在运行并在特定的界面中侦听。 查询, 我需要限制服务器套接字来接受来自特定接口的数据。我怎么做? 为什么如果我将服务器套接字绑定到eth0/eth1,则客户端在连接被拒绝时失败,但是如果我将服务器套接字绑定到回送ip,则客户端/服务器程序将起作用。如果套接字绑定到eth0接口,则轮询返回pollhup和pollerr
-2
A
回答
0
回送数据路径不经过ETH/0也不ETH/1
因此,如果结合到这些设备,则无法通过环回进行通信。
即使服务器/客户端位于不同的计算机上,实际上也没有理由绑定到这些设备。
的“绑定到设备”与有互联网许多连接网络服务器工作时,是唯一真正有用的,你想要的流量负载
更容易只是绑定分配到一个“口”(一个神话的设备),并让通信协议处理实际使用哪个硬件IO的细节。
相关问题
- 1. 阅读()后轮询返回POLLIN和POLLERR
- 2. 如何将套接字绑定到vxWorks中的特定接口
- 3. 如何将原始套接字绑定到特定接口
- 4. 套接字创建失败,但套接字()和绑定()方法不返回-1
- 5. 如何将套接字绑定到python的接口(socket.SO_BINDTODEVICE丢失)
- 6. Ruby:将监听套接字绑定到特定接口
- 7. 将套接字重新绑定到不同的接口
- 8. 如何将原始套接字绑定到特定的端口?
- 9. 如果套接字仍然连接,EndReceive是否会返回零?
- 10. 带轮询的非阻塞套接字
- 11. 服务器套接字不绑定到指定的端口
- 12. 套接字轮询(selectwrite轮询模式)何时变为false?
- 13. 绑定套接字Android
- 14. 套接字绑定错误
- 15. 如何将多个接口绑定到一个原始套接字
- 16. 如何动态地将套接字绑定到一个网络接口?
- 17. Linux:套接字和绑定问题
- 18. Python套接字绑定到任何IP?
- 19. 使用javascript绑定到套接字?
- 20. 套接字连接返回errno ETIMEOUT
- 21. 重定向STDIN到套接字和套接字到STDOUT
- 22. 将套接字绑定到端口80在ansi c
- 23. C:将打开的端口绑定到套接字的问题
- 24. 如何在Haskell中指定组播套接字的本地绑定接口?
- 25. Python套接字编程和LED接口
- 26. 相同的绑定端口UDP套接字和接收数据的全部
- 27. 套接字缓冲区与套接字的绑定
- 28. 套接字连接超时在c使用轮询
- 29. udp在C++中轮询套接字和多播
- 30. 套接字,xmpp和轮询到node.js - 性能和服务器友好
我需要限制服务器套接字接受来自特定网络接口的连接,我该怎么做? – Hariharan