Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t通过Mac OS X上的套接字进行通信_Java_Python_Macos_Networking_Sockets - Fatal编程技术网

Java Can';t通过Mac OS X上的套接字进行通信

Java Can';t通过Mac OS X上的套接字进行通信,java,python,macos,networking,sockets,Java,Python,Macos,Networking,Sockets,我正在开发一些软件,它由一台机器上的服务器和客户端组成,通过本地套接字进行通信 服务器(用Java编写)在端口9000上打开一个Java.net.ServerSocket,客户端(用Java或Python)必须连接到localhost:9000才能通信 在Windows和Linux中,这可以正常工作。在MacOSX(10.6,Java1.6.0)上,服务器和客户端之间没有通信,即使我没有收到任何错误。我是否需要为Mac编写不同的代码,或者需要更改系统设置以使其正常工作 Python客户端代码段:

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

服务器(用Java编写)在端口9000上打开一个Java.net.ServerSocket,客户端(用Java或Python)必须连接到localhost: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 OS上遇到了非常类似的问题,Java客户端无法打开Web服务器的套接字(lighttpd服务静态文件):没有防火墙运行;在Web浏览器和CLI工具中工作(
curl
wget
);对于不同的非标准自由端口也一样禁用对Web服务器的IPv6支持解决了该问题

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

80/tcp    open  PORT
不会出现在
nmap localhost
列表中,但是

tcp6       0      0  localhost.PORT         *.*                    LISTEN
出现在
netstat-a
列表中

配置:

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

这是完整的代码示例吗?这里没有调用main方法。您确定服务器确实绑定到端口9000吗?例如,xdebug还希望使用端口9000。如果您使用不同的端口,它能工作吗?它只是程序中的一个片段,这个问题应该是一个注释,而不是答案。