【发布时间】:2012-05-22 15:46:44
【问题描述】:
我是 python 的新手,几天前我开始尝试网络编程(我也是那里的新手)
现在我发现了一个简洁的客户端服务器程序,它在我的计算机上运行非常简单,但是当我替换本地地址并告诉我的朋友运行客户端脚本时,它就是没有响应。
我的全球IP地址:120.59.XX.XXX
ipconfig 返回的我的 IPv4 地址:192.168.1.2(我通过路由器连接到互联网)
我的网关地址:192.168.1.1
使用的端口:1060(我在本地测试了这个端口,它没有被使用)
#server.py
import socket
import sys
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
MAX = 65535
PORT = 1060
server.bind(('192.168.1.2', PORT))
print 'Listening at', server.getsockname()
while True:
data, address = server.recvfrom(MAX)
print 'The client at', address, 'says', repr(data)
server.sendto('Your data was %d bytes' % len(data), address)
客户代码:
#client.py
import socket
import sys
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
PORT = 1060
MAX = 65536
client.sendto('Hello Server!', ('120.59.XX.XXX', PORT))
data, address = client.recvfrom(MAX)
print 'The server', address, 'says', repr(data)
我在我的电脑上启动 server.py 并告诉我的朋友启动 client.py,我允许通过防火墙到 python 的传入连接,我还将 1060 端口添加到 windows 传入连接列表。
仍然没有响应,我无法解释原因(我有一个动态 IP 地址,但对于当前会话,它保持不变,因此应该可以工作,1060 也是一个众所周知的端口,不应该是问题对吧?)
【问题讨论】:
标签: python networking