gpt4 book ai didi

java - 无法在 Mac OS X 上通过套接字进行通信

转载 作者:行者123 更新时间:2023-12-01 05:55:07 25 4
gpt4 key购买 nike

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

服务器(用 Java 编写)在端口 9000 上打开 java.net.ServerSocket,客户端(Java 或 Python)必须连接到 localhost:9000 才能进行通信。

在 Windows 和 Linux 中,这工作得很好。在 Mac OS X(10.6、Java 1.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 工具(curlwget);对于不同的非标准自由端口也是如此。 禁用 Web 服务器的 IPv6 支持解决了该问题。

到底发生了什么超出了我的了解,但在上述更改之前,Web 服务器的访问日志中没有 Java 客户端请求的条目。另外,

80/tcp    open  PORT

不会出现在nmap localhost列表中,尽管

tcp6       0      0  localhost.PORT         *.*                    LISTEN

出现在 netstat -a 列表中。

配置:

  • Mac 操作系统:10.6,
  • Java:1.6.0_24,尝试了 x86 和 amd64 版本。

关于java - 无法在 Mac OS X 上通过套接字进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3268111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com