无法通过Mac OS X上的套接字进行通信

2024-10-01 13:28:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一些软件,它由一台服务器和一台机器上的客户机组成,它们通过本地套接字进行通信。在

服务器(用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)

Tags: 端口import服务器机器客户机net软件server
1条回答
网友
1楼 · 发布于 2024-10-01 13:28:59

也许这会对某些人有所帮助,因为我在Mac操作系统上也遇到过类似的问题:Java客户端无法为Web服务器打开socket(lighttpd提供静态文件):没有防火墙在运行;可以在Web浏览器和CLI工具(curl和{})下工作;不同的、非标准的空闲端口也是一样。禁用对Web服务器的IPv6支持解决了此问题。在

我不知道到底发生了什么,但在上述更改之前,Web服务器的访问日志中没有针对Java客户机请求的条目。还有

80/tcp    open  PORT

但不会出现在nmap localhost列表中

^{2}$

出现在netstat -a列表中。在

配置:

  • Mac OS:10.6
  • Java:1.6.0_24,尝试过x86和amd64版本。在

相关问题 更多 >