我正在开发一些软件,它由一台服务器和一台机器上的客户机组成,它们通过本地套接字进行通信。在
服务器(用Java编写)打开一个java.net.ServerSocket在端口9000上,客户机(Java或Python)必须连接到本地主机:9000到沟通。在
在Windows和Linux中,这很好地工作。在macosx(10.6,java1.6.0)上,即使我没有发现任何错误,服务器和客户机之间也不会发生通信。我需要为Mac编写不同的代码吗?还是需要更改系统设置才能使其正常工作?在
Python客户端代码段:
import socket
from re import sub
def main(server_address, port):
'''
Connect to the server.
'''
rclf = '\r\n'
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((server_address,port))
s.send("Version:1.0.0"+rclf)
也许这会对某些人有所帮助,因为我在Mac操作系统上也遇到过类似的问题:Java客户端无法为Web服务器打开socket(lighttpd提供静态文件):没有防火墙在运行;可以在Web浏览器和CLI工具(})下工作;不同的、非标准的空闲端口也是一样。禁用对Web服务器的IPv6支持解决了此问题。在
curl
和{我不知道到底发生了什么,但在上述更改之前,Web服务器的访问日志中没有针对Java客户机请求的条目。还有
但不会出现在
^{2}$nmap localhost
列表中出现在
netstat -a
列表中。在配置:
相关问题 更多 >
编程相关推荐