Python 如何将套接字绑定到本地地址?

Python 如何将套接字绑定到本地地址?,python,sockets,networking,ip,Python,Sockets,Networking,Ip,我搜索了很多,但找不到如何将套接字绑定到本地主机地址192.168.1.6 我试过了 host = "192.168.1.6" port = 1337 s.bind((host,port)) 但这是一个错误 socket.gaierror: [Errno 11001] getaddrinfo failed 以下是我的完整代码: 编辑:- 服务器 第3行“192.168.1.6”中的地址是我通过在服务器程序中打印主机得到的地址我认为您应该这样做: import socket host = ".

我搜索了很多,但找不到如何将套接字绑定到本地主机地址192.168.1.6

我试过了

host = "192.168.1.6"
port = 1337
s.bind((host,port))
但这是一个错误

socket.gaierror: [Errno 11001] getaddrinfo failed
以下是我的完整代码:

编辑:- 服务器


第3行“192.168.1.6”中的地址是我通过在服务器程序中打印主机得到的地址

我认为您应该这样做:

import socket
host = "...."
port = ...
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((host,port))
“getaddrinfo failed”错误可能意味着IP地址可能不是本地网络上计算机的地址。 试试这个


你的第二个问题在报告中得到了回答。如果您需要澄清,请在IP中询问“192.168.1.6”必须是您运行此程序的计算机中网卡的IP。它不能是其他计算机的IP。而且,
AF\u INET6
必须使用IPv6地址。对IPv4使用
AF\u INET
。您不会将地址绑定到套接字,而是将套接字绑定到地址。谢谢。。。我已使用您的代码成功创建服务器。。。您能给我客户端程序的代码吗…我尝试了,但得到了错误套接字。gaierror:[Errno 11001]getaddrinfo失败。。。。我可以使用链接192.168.1.6:1337/index.htmli通过浏览器访问它。如果这个解决方案对您有效,那么您很可能会得到错误的IP地址。您使用的是Windows还是Linux?您可能会在服务器代码中临时添加“打印主机”到代码正在检索的地址,并确定是否正确。我正在使用打印主机创建服务器。。。在客户端使用相同的。。。更多我使用相同的ip访问通过浏览器,这是成功的。。。(我在windows上)您确定正在服务器端使用“s.accept()”函数吗?
from socket import *

host = gethostbyaddr('192.168.1.6')
print()
host_name = host[0]
port = 1337
print(host)
print(host_name)
s = socket(AF_INET, SOCK_STREAM)
s.connect((host_name, port))
import socket
host = "...."
port = ...
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((host,port))
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect(("8.8.8.8", 80))
    host = s.getsockname()[0]
port = 1337

s = socket.socket()
s.bind((host, port))