我搜索了很多,但找不到如何將套接字綁定到本地主機地址 192.168.1.6。我試過host = "192.168.1.6"port = 1337s.bind((host,port))但它給出了錯誤socket.gaierror: [Errno 11001] getaddrinfo failed這是我的完整代碼:編輯:- 服務(wù)器import socketdef function(c): c.send('HTTP/1.0 200 OK\n'.encode()) c.send('Content-Type: text/html\n'.encode()) c.send("""<html> <body> <h1> Hello World </h1> this is my server! </body> </html>""".encode())with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect(("122.168.223.131", 80)) host = s.getsockname()[0] print(host)port = 1337s = socket.socket()s.bind((host, port))s.listen(1)c, (client_host, client_port) = s.accept()c.recv(1000)print('Got connection from', client_host, client_port)function(c)客戶 :-from socket import *host = gethostbyaddr('192.168.1.6')print()host_name = host[0]port = 1337print(host)print(host_name)s = socket(AF_INET, SOCK_STREAM)s.connect((host_name, port))第 3 行“192.168.1.6”中的地址是我通過在服務(wù)器程序中打印主機得到的
2 回答

呼喚遠方
TA貢獻1856條經(jīng)驗 獲得超11個贊
我認為你應該這樣做:
import socket
host = "...."
port = ...
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((host,port))

米脂
TA貢獻1836條經(jīng)驗 獲得超3個贊
“getaddrinfo failed”錯誤可能意味著 IP 地址可能不是本地網(wǎng)絡(luò)上您計算機的地址。試試這個
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))
添加回答
舉報
0/150
提交
取消