如何创建总是接收数据的主机套接字。python

如何创建总是接收数据的主机套接字。python,python,python-3.x,sockets,tcp,tcpclient,Python,Python 3.x,Sockets,Tcp,Tcpclient,由于某些原因,我似乎无法创建一个主机或客户端,在这个主机或客户端中,客户端可以随时向主机发送消息。我只能发送一条消息,之后什么也没有收到 我的while循环应该允许我这样做,所以我不知道为什么这对我来说是不可能实现的;'() 客户: # Python-Socket-Client import socket #'localhost' # 88 target_server = str(input('Target_Host:')) target_port = int(input('Target

由于某些原因,我似乎无法创建一个主机或客户端,在这个主机或客户端中,客户端可以随时向主机发送消息。我只能发送一条消息,之后什么也没有收到

我的while循环应该允许我这样做,所以我不知道为什么这对我来说是不可能实现的;'()

客户:

# Python-Socket-Client

import socket

#'localhost'
#   88
target_server = str(input('Target_Host:'))
target_port = int(input('Target_Port:'))

client = socket.socket(socket.AF_INET , socket.SOCK_STREAM )

client.connect((target_server,target_port))
print('\n')
print('****************************')
print(target_server)
print(target_port)

def send_and_recieve_message(message):


   #response = client.recv(4065)
   if type(message) == str:
       client.send(message.encode())





while True:
   mess= input("{}:".format('Client'))
   send_and_recieve_message(mess)

在宿主代码中,server.accept()是一个阻塞调用。它将等待有人连接。你需要把它从while循环中分离出来。然后检查连接是否仍然有效,如果不等待另一个连接

while True:

    client,addr = server.accept()

    while client != None:
        recieve = client.recv(2024)
        print(recieve.decode())
类似于此,您可能希望添加更好的检查,以查看连接是否仍然有效

while True:

    client,addr = server.accept()

    while client != None:
        recieve = client.recv(2024)
        print(recieve.decode())