Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python套接字客户端在一台主机上运行时,如何拥有任意IP?_Python_Sockets - Fatal编程技术网

python套接字客户端在一台主机上运行时,如何拥有任意IP?

python套接字客户端在一台主机上运行时,如何拥有任意IP?,python,sockets,Python,Sockets,我正在尝试学习python中的套接字编程。 我已经编写了一个服务器,它首先通过客户端的IP来识别客户端,我想在本地主机上测试该程序,但不知道如何为客户端提供不同的IP。正如我所知,当我们使用connect()方法时,我们只指定目标的主机和端口,但是如果我们想选择自己的呢?!有办法吗 HOST = '127.0.0.1' PORT = 8018 TIMEOUT = 5 BUF_SIZE = 1024 class WhatsUpClient(): def __init__(self,

我正在尝试学习python中的套接字编程。
我已经编写了一个服务器,它首先通过客户端的IP来识别客户端,我想在本地主机上测试该程序,但不知道如何为客户端提供不同的IP。正如我所知,当我们使用connect()方法时,我们只指定目标的主机和端口,但是如果我们想选择自己的呢?!有办法吗

HOST = '127.0.0.1'
PORT = 8018
TIMEOUT = 5
BUF_SIZE = 1024


class WhatsUpClient():

    def __init__(self, host=HOST, port=PORT):
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.connect((host, port))
        logging.info('Connecting to %s:%s' % (host, port))
        while 1:
            try:
                buf = self.sock.recv(BUF_SIZE)
                sys.stdout.write(buf)
                cmd = raw_input()
                if cmd.strip() == '!q':
                    sys.exit(1)
                self.sock.send(cmd)
            except:
                self.sock.close()

    def run(self):
        pass

一个IP地址必须是全世界唯一的(除了少数例外),所以你不能随意选择一个并使用它

您可以查看is(192.168.x.x和10.x.x.x)。最简单的设置方法是在计算机上安装虚拟机(如)。当您查看活动网络接口时,您将看到VM添加了一些虚拟网卡

如果您在虚拟PC上运行客户端,它将获得一个特殊的私有IP地址

你也可以在云端租一台个人电脑,在那里运行你的代码,但这要花钱


另一种选择是询问您的系统管理员是否有免费的IP地址,您可以使用这些地址进行测试,但通常情况下,他们不会或不想告诉您,因为设置这些地址有点复杂。

IP地址是分配给计算机的,而不是分配给某个程序的。您可能想在维基百科上阅读互联网协议: