我正在尝试学习python中的套接字编程。
我已经编写了一个服务器,它首先通过IP识别客户端,我想在localhost上测试程序,但不知道如何为客户端提供不同的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
答案 0 :(得分:0)
IP地址对于整个世界来说必须是唯一的(除了少数例外),因此您不能随意选择并使用它。
您可以查看private networks(192.168.x.x和10.x.x.x)。设置此方法的最简单方法是在您的计算机上安装虚拟机(如VirtualBox)。查看活动网络接口时,您会看到VM添加了一些虚拟网卡。
如果您在虚拟PC上运行客户端,它将获得一个特殊的私有IP地址。
您也可以在云中租用一台PC并在那里运行您的代码,但这需要花钱。
另一个选择是询问系统管理员他们是否有任何可用于测试的免费IP地址,但通常他们没有,或者他们不想告诉你,因为设置它有点复杂。 / p>