Twisted Python通过网络交换机连接

时间:2014-03-05 17:53:22

标签: python networking twisted

我有两台计算机(没有别的)直接插入网络交换机,我试图通过twisted.internet.reactor.connectTCP(addr, 8000, factory)连接到另一台计算机。我应该拥有addr

在我尝试连接的计算机上(手动复制,因此可能存在拼写错误):

$ ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:92:e3:cc
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:126 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:41328 (40.3 KiB)  TX bytes:3850 (3.7 KiB)

[snip]

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

这个问题并不是关于Twisted,而是关于网络。 Twisted的connectTCP从计算机上的某个IP地址连接到远程计算机上的某个IP地址。您通常不需要指定源地址,因为本地TCP堆栈将根据远程TCP堆栈自动发现要使用的正确TCP地址。但是,两台计算机都需要具有可以相互路由的IP地址。

您从ifconfig显示的输出显示您有以太网设备,但该设备没有关联的IP地址。您没有为Twisted提供IP地址,因为您的网络设置不够connectTCP(或者甚至在IP层运行的其他软件,更不用说connectTCP的更高级别了at,这是TCP)工作。

如果它们只是直接插入没有DHCP服务器的网络交换机(或其他一些机制,如SLAAC),你需要以某种方式为本地和远程设备上的该接口分配IP地址,以便为它们提供直接解决。您还需要设置网络掩码和其他所有内容,以便两台计算机可以相互路由。

我不会在这个答案中告诉你如何做到这一点,因为它在很大程度上取决于你的网络配置和操作系统。然而,这将是超级用户的一个很好的候选人,正如让 - 保罗在他的评论中所说的那样。