【发布时间】:2012-10-21 22:33:35
【问题描述】:
我最近使用套接字在 python 中编写了一个客户端/服务器对,但问题是客户端没有连接到另一个网络上的服务器。我尝试了端口转发并使内部 IP 地址成为静态,这是一个真正困扰我的问题我是否需要外部/公共 IP 地址来使客户端连接,如果是这种情况,当 ISP 更改我的外部 IP 地址时该怎么办。请给点建议,谢谢。
code:
PORT=8888
srvsock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
srvsock.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, 1 )
srvsock.bind( ('', PORT) )
srvsock.listen( 10 )
print 'server now listening on PORT '+str(PORT)
while 1:
clisock, (remhost, remport) = srvsock.accept()
dl_information_file="server.txt"
if os.path.exists(dl_information_file):
f=open('server.txt','rb')
read=f.read()
clisock.send( read )
f.close()
【问题讨论】:
-
你不需要公共 IP 地址来与套接字通信,但你必须发布你的代码(或相关部分),否则没有人可以帮助你。
-
基本的网络设置也会有所帮助。 1. 服务器所在的网络 IP 地址、子网掩码等与客户端所在的网络相同。这个网络之间是否可以进行其他通信,它们是如何连接的......?
标签: python sockets ip-address portforwarding