Python+;插座

Python+;插座,python,sockets,ports,Python,Sockets,Ports,我必须创建连接服务器客户端。我使用以下代码: 服务器: 客户: import socket HOST = 'localhost' PORT = 50007 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) s.send('Hello, world') data = s.recv(1024) s.close() print 'Received', repr(d

我必须创建连接服务器客户端。我使用以下代码: 服务器:

客户:

import socket

HOST = 'localhost'   
PORT = 50007             
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send('Hello, world')
data = s.recv(1024)
s.close()
print 'Received', repr(data)
很好用!但如果服务器是在没有路由器的计算机上创建的。 若你们有路由器,在创建服务器之前,你们应该在你们的调制解调器上打开50007端口。如果不启用端口,如何在所有计算机上创建服务器?Torrent客户端以某种方式做到了这一点。
谢谢。

这个问题有点让人困惑,但我会尽力帮忙的。基本上,如果服务器上的端口(50007)被防火墙阻止,您将无法从客户端与它建立tcp连接。这就是防火墙的目的。许多协议(例如SIP和bittorrent)确实使用防火墙和NAT导航策略,但这是一个复杂的主题,您可以这样做。您将注意到,要有效地使用bittorrent,您必须为NAT启用端口转发,并为防火墙取消阻止端口范围。此外,bittorrent使用tcp连接进行大多数数据传输。这是外卖:

首先,请注意BitTorrent程序必须建立两种类型的连接:

  • 到跟踪器的出站HTTP连接,通常在端口6969上
  • 到对等计算机的入站和出站连接,通常在端口6881及以上

很难理解你的问题

(…)Torrent客户端以某种方式做到了这一点


Torrent客户端只能在路由器(Internet网关设备(IGD))支持的情况下执行此操作。您的问题的有趣部分是。

>您必须为NAT启用端口转发,并为防火墙解除阻止端口范围。我可以使用python来做到这一点吗?或者它不是编程的一部分?那将不是一个编程的东西,除非防火墙是基于软件的。这是一种网络系统管理之类的东西。
import socket

HOST = 'localhost'   
PORT = 50007             
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send('Hello, world')
data = s.recv(1024)
s.close()
print 'Received', repr(data)