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()
    渐变 --> 突变
  • 相关阅读:
    JAVA C 数据类型对应
    JAVA javah
    JAVA java
    JAVA javac
    JAVA jar命令(一)-jar打包class文件
    Unity 中调用Android的JAVA代码
    unity 打包Apk生成签名证书keystore
    SQL Server 备份还原
    C/C++ warning C4251: class ... 需要有 dll 接口由 class“..” 的客户端使用
    如何修复 WordPress 中的 HTTP 错误
  • 原文地址:https://www.cnblogs.com/lybpy/p/8025475.html
Copyright © 2011-2022 走看看