Mac平台下使用Python socket模块实现同路由器两台电脑TCP连接的方法
解决Mac平台TCP Socket私有IP连接被拒绝(Connection Refused)的问题
以下是针对性的排查和解决步骤:
确保服务端代码配置正确
服务端不能只绑定回环地址127.0.0.1(仅本地可访问),必须绑定到0.0.0.0(监听所有网卡)或当前Mac的私有IP。同时要保证服务端先于客户端启动,且无运行报错。示例服务端代码:import socket server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定到所有网卡的8888端口,也可替换为你的私有IP如192.168.3.10 server.bind(('0.0.0.0', 8888)) server.listen(5) print("服务端等待连接...") conn, addr = server.accept()检查Mac防火墙设置
打开「系统设置」→「网络」→「防火墙」,确认允许Python进程接收传入连接。也可临时关闭防火墙测试(测试后建议重新开启),终端执行:sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off验证端口是否被占用
终端执行lsof -i :<你的端口号>(比如lsof -i :8888),查看目标端口是否被其他进程占用。如果被占用,可杀掉对应进程或更换一个1024以上的未使用端口。确认客户端连接参数无误
客户端必须使用服务端的私有IP和对应端口,不能出现IP或端口写错的情况。示例客户端代码:import socket client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 替换为服务端的私有IP,比如192.168.3.10 client.connect(('192.168.3.10', 8888))排查局域网连通性
分别在两台设备上查看私有IP(Mac用ifconfig,Windows用ipconfig),确认处于同一网段(如都是192.168.3.x)。用客户端ping服务端私有IP,若ping不通,检查路由器设置或设备的网络连接状态。检查第三方安全软件拦截
部分第三方杀毒或安全工具可能会拦截Socket连接,可暂时关闭这类软件后重新测试。
内容的提问来源于stack exchange,提问作者JWS
相关产品推荐
相关产品推荐

