面向对象的套接字Python客户端服务器。将修改后的客户端消息传递到服务器

时间:2019-12-10 11:50:32

标签: python sockets oop server echo

我正在尝试构建一个Python程序,该程序将在客户端和服务器之间传递消息。这个想法是从服务器传递一条消息,然后让客户端对其进行修改,然后再传递回服务器。

现在,我很想尝试将客户端的消息发送回服务器;消息“恭喜!您已连接”已转换为大写

服务器

import socket

class Server:

    def __init__(self, host, port):
        self.serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        self.host = host
        self.port = port

    def bind(self):
        self.serverSocket.bind((self.host, self.port))
        self.serverSocket.listen(5)

    def run(self):
        while True:
            print ('Waiting for a connection')
            (clientSocket, addr) = self.serverSocket.accept()
            print ('Got a connection from {}'.format(str(addr)))
            message = 'Congrats! You have connected'
            self.sendMessage(message, clientSocket)
            self.recieveMessage()
            clientSocket.close()

    def sendMessage(self, message, clientSocket):
        clientSocket.send(message.encode('ascii'))

    def recieveMessage(self):
        (clientSocket, addr) = self.serverSocket.accept()
        message = self.serverSocket.recv(1024).decode('ascii')
        print(message)

    def closeSocket(self):
        self.serverSocket.close()


if __name__ == '__main__':
    myServer = Server('127.0.0.1', 5555)
    myServer.bind()
    myServer.run()
    myServer.recieveMessage()
    myServer.closeSocket()

客户

import socket


class Client:

    def __init__(self, host, port):
        self.serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.host = host
        self.port = port

    def connect(self):
        self.serverSocket.connect((self.host, self.port))

    def getMessage(self):
        return self.serverSocket.recv(1024).decode('ascii')

    def modifyMessage(self):
        return message.upper()

    def sendMessage(self, upperCaseMessage, server):
        (server, addr) = self.serverSocket.accept()
        serverSocket.send(upperCaseMessage.encode('ascii'))

    def closeConnection(self):
        self.serverSocket.close()


if __name__ == '__main__':
    myClient = Client('127.0.0.1', 5555)
    myClient.connect()
    message = myClient.getMessage()
    upperCaseMessage = myClient.modifyMessage()
    myClient.sendMessage(upperCaseMessage, serverSocket)
    myClient.closeConnection()

0 个答案:

没有答案