zoukankan      html  css  js  c++  java
  • Python半双工聊天

    半双工聊天

    半双工聊天。创建一个简单的半双工聊天程序。指定半双工,我们的意思就是,当建
    立一个连接且服务开始后,只有一个人能打字,而另一个参与者在得到输入消息提示
    之前必须等待消息。并且,一旦发送者发送了一条消息,在他能够再次发送消息之前,
    必须等待对方回复。其中,一位参与者将在服务器一侧,而另一位在客户端一侧。

    # server.py 服务器
    from socket import *
    from time import ctime
    
    HOST = ''
    PORT = 12345
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    
    tcpServer = socket(AF_INET, SOCK_STREAM)
    tcpServer.bind(ADDR)
    tcpServer.listen(5)
    
    try:
        while True:
            print('waiting for connection...')
            tcpClient, addr = tcpServer.accept()
            print('Connected from:', addr)
            while True:
                data = tcpClient.recv(BUFSIZ)
                print('[%s]: %s' % (ctime(), data.decode('utf-8')))
                reply = input('> ')
                tcpClient.send(bytes(reply, 'utf-8'))
            tcpClient.close()
        tcpServer.close()
    except KeyboardInterrupt:
        print('Bye!')
    # client.py 客户端
    from socket import *
    from time import ctime
    
    HOST = 'localhost'
    PORT = 12345
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    
    tcpClient = socket(AF_INET, SOCK_STREAM)
    tcpClient.connect(ADDR)
    
    try:
        while True:
            data = input('> ')
            tcpClient.send(bytes(data, 'utf-8'))
            reply = tcpClient.recv(BUFSIZ)
            print('[%s]: %s' % (ctime(), reply.decode('utf-8')))
    except KeyboardInterrupt:
        print('Bye!')
    Resistance is Futile!
  • 相关阅读:
    Redis-持久化
    Redis-Sort命令
    Redis-ZSet常用命令
    Redis-Hash
    Redis-Set常用命令
    Redis-List常用命令
    Redis-String常用命令
    访问控制
    c++之旅:多态
    c++之旅:类型的强制转换
  • 原文地址:https://www.cnblogs.com/noonjuan/p/10813776.html
Copyright © 2011-2022 走看看