Python套接字连接同一个n上的两个设备

2024-10-03 11:13:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从同一网络上的两台计算机连接一个简单的服务器和客户端。客户端和服务器都找不到对方,因为它们不会分别经过.connect().accept()。我做错什么了?你知道吗

(Windows 10)

服务器:

import socket

HOST = socket.gethostname()    #Returns: "WASS104983"
#I have also tried socket.gethostbyname(socket.gethostname)), returning: "25.38.252.147"
PORT = 50007

sock = socket.socket()
sock.bind((HOST, PORT))
sock.listen(5)

print("Awaiting connection... ")

(clnt, addr) = sock.accept()

print("Client connected")
…

客户:

import socket

HOST = "WASS104983"    #Or "25.38.252.147", depending on the servers setup
PORT = 50007

sock = socket.socket()

print("Attempting connection... ")

sock.connect((HOST, PORT))

print("Connected")
…

我已经得到这个工作之前,所以我不知道为什么它不是现在。你知道吗

我知道有几个这样的问题,但似乎没有一个能解决我的问题。你知道吗

另外,wifi扩展器不应该干扰本地传输,是吗?你知道吗


Tags: import网络服务器host客户端port计算机connect
1条回答
网友
1楼 · 发布于 2024-10-03 11:13:42

我一直看到服务器的设置是这样的:

import socket
import threading

bind_ip = '0.0.0.0'
bind_port = 9999

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((bind_ip, bind_port))
server.listen(5)

print("[*] Listening on {}:{}".format(bind_ip, bind_port))


def handle_client(client_socket):
    request = client_socket.recv(1024)
    print('received: {}'.format(request))
    client_socket.send(b'ACK!')
    client_socket.close()


while True:
    client, addr = server.accept()
    print("[*] Accepted connection from: {}:{}".format(addr[0], addr[1]))
    client_handler = threading.Thread(target=handle_client, args=(client,))
    client_handler.start()*

我认为与您的文章的一个重要区别可能是接受连接的服务器在一个无限循环中。你试过这个吗?你知道吗

相关问题 更多 >