Client/Server 在 Python

Client/Server in Python

我试图在 python 中实现服务器和客户端之间的通信。我需要在它们之间双向发送一条消息,但我不知道如何将其作为连续通信,因为在我的程序中,服务器和客户端仅发送一条消息后连接关闭。有人可以帮助我吗?

这是我的服务器代码:

import socket

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

serv.bind(('0.0.0.0', 8082))
serv.listen(5)

while True:
    conn, addr = serv.accept()
    from_client=''
    while True:
        from_client=''
        data = conn.recv(4096)
        if not data : break
        from_client+=data
        print from_client
    
        print("Send character to CLIENT ")
        input1=str(raw_input())
        conn.send(input1)
    
        print("You received from client the next Character")
        from_client=''
        data = conn.recv(4096)
        if not data : break
        from_client+=data
        print from_client
        print'\n'
   conn.close()
   print 'client disconenct'

这是我的客户端代码:

import socket

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('0.0.0.0', 8082))

client.send("I am CLIENT\n")
from_server = client.recv(4096)
print("I received from SERVER %s" %from_server)
print("Send your character to SERVER")
input1=str(raw_input())
client.send(input1)

client.close()

您的连接已关闭,因为 client.close()

如果您的客户端的行为就像服务器重复请求您向服务器发送一些消息然后接收服务器发送的内容,您可以创建一个 Ping-Pong 应用程序,一侧重复 input-send-receive循环而另一个重复receive-input-send循环。