簡體   English   中英

Python Socket連接同一網絡上的兩個設備

[英]Python Socket connect two devices on same network

我試圖從同一網絡上的兩台計算機連接一個簡單的服務器和客戶端。 客戶端和服務器不能“找到”對方,因為他們不搬過去.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擴展器不應該干擾本地傳輸嗎?

我一直看到服務器設置如下:

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()*

我認為與您的帖子的重要區別可能是接受連接的服務器在無限循環內。 你試過這個嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM