Python:通过套接字在两台计算机之间发送数据

Pio*_*ski 8 python sockets connection tcp

我正在开发一个脚本,可以在两台不同的计算机之间传输数据,并可以访问互联网.我正在使用python的socket标准模块.当我在单台计算机上运行客户端和服务器时,它工作正常,但是当它们在不同的计算机上运行时,我无法使其工作.

这是我的服务器代码的一部分:

import socket, time,os, random

class Server():
  def __init__(self,Adress=('',5000),MaxClient=1):
      self.s = socket.socket()
      self.s.bind(Adress)
      self.s.listen(MaxClient)
  def WaitForConnection(self):
      self.Client, self.Adr=(self.s.accept())
      print('Got a connection from: '+str(self.Client)+'.')


s = Server()
s.WaitForConnection()
Run Code Online (Sandbox Code Playgroud)

这是我的客户端代码的一部分:

import socket

class Client():
   def __init__(self,Adress=("Here is the IP of the computer on which the \
                                   server scrip is running",5000)):
      self.s = socket.socket()
      self.s.connect(Adress)

c = Client()
Run Code Online (Sandbox Code Playgroud)

当我在具有Internet访问权限的两台不同计算机上运行这些脚本时,客户端无法连接并引发错误,服务器正在等待连接永远.

我究竟做错了什么?

Dan*_*roa 7

这可能与你看起来没问题的代码有关.我认为这是您正在使用的IP地址的问题.

如果计算机位于不同的网络上,则需要确保您传递的IP地址是网络可访问的IP地址.基本上这意味着如果您使用的IP以192.168开头.?.?然后你使用了错误的IP.

您可以通过运行以下命令轻松检查:(
windows):ipconfig
(linux):ifconfig

如果您使用的是正确的IP地址,那么我会检查我的路由器设置和/或防火墙设置,这可能会很好地阻止您尝试使用的端口号.