zoukankan      html  css  js  c++  java
  • tcp+多线程=收发信息

    服务端:(本机测试)

    from socket import *
    from time import *
    import threading
    
    HOST = gethostname()
    PORT = 2001
    ADDR = (HOST,PORT)
    
    tcps = socket(AF_INET,SOCK_STREAM)
    tcps.bind(ADDR)
    tcps.listen(5)
    
    def recv_msg(con):
        try:
            while True:
                message = con.recv(1024).decode()
                print(message)
                if message == 'quit':
                    con.close()
        except ConnectionAbortedError:
            return '您已经断开连接。'
        except OSError:
            return '对方断开了连接'
    
    def send_mag(con):
        try:
            while True:
                data = input('>>')
                con.send(data.encode())
                if data == 'quit':
                    con.close()
        except ConnectionAbortedError:
            return '您已经断开连接。'
        except OSError:
            return '对方断开了连接'
    
    while True:
        print('waiting for connection...')
        con,addr = tcps.accept()
        print('...connected from:',addr)
        r = threading.Thread(target=recv_msg,args=(con,))
        s = threading.Thread(target=send_mag,args=(con,))
        r.start()
        s.start()
    tcps.close()

    客户端:

    from socket import *
    from time import *
    import threading
    
    HOST = gethostname()
    PORT = 2001
    ADDR = (HOST,PORT)
    
    def recv_msg(con):
        try:
            while True:
                message,a = con.recvfrom(1024)
                print(message.decode())
                if message.decode() == 'quit':
                    con.close()
        except ConnectionAbortedError:
            return '您已经断开连接。'
        except OSError:
            return '对方断开了连接'
    
    def send_mag(con):
        try:
            while True:
                data = input('>>')
                con.send(data.encode())
                if data == 'quit':
                    con.close()
        except ConnectionAbortedError:
            return '您已经断开连接。'
        except OSError:
            return '对方断开了连接'
    
    tcpc = socket(AF_INET,SOCK_STREAM)
    tcpc.connect(ADDR)
    r = threading.Thread(target=recv_msg,args=(tcpc,))
    s = threading.Thread(target=send_mag,args=(tcpc,))
    r.start()
    s.start()
    渐变 --> 突变
  • 相关阅读:
    大白话五种IO模型
    test
    shutil模块(了解)
    isinstance和issubclass
    变量的三个特征
    匿名函数
    javascript location 对象
    select元素javascript常用操作
    设置mysql的用户权限
    jquery
  • 原文地址:https://www.cnblogs.com/lybpy/p/8025475.html
Copyright © 2011-2022 走看看