gpt4 book ai didi

Python网络编程(绑定(bind)外部地址)

转载 作者:行者123 更新时间:2023-12-01 06:00:27 24 4
gpt4 key购买 nike

我是Python新手,几天前我开始尝试网络编程(我也是新手)

现在我发现了一个简洁的客户端服务器程序,它在我的计算机上运行得非常简单,但是当我替换本地地址并告诉我的 friend 运行客户端脚本时,它只是不会响应。

我的全局 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,并告诉我的 friend 启动了client.py,我允许通过防火墙传入到python的连接,还将1060端口添加到Windows传入连接列表中。

它仍然没有响应,我无法解释为什么(我有一个动态 IP 地址,但对于当前 session ,它保持不变,因此应该可以工作,而且 1060 是一个众所周知的端口,不应该是一个问题对吧?)

最佳答案

您需要在路由器中添加端口转发规则!比如从端口 1060 转发到 192.168.1.2 端口 1060。

关于Python网络编程(绑定(bind)外部地址),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705479/

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