• python 套接字编程


    一,基于tcp协议的套接字编程

    客户端:

    import socket
    
    
    #  1,买手机
    phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    
    #  2,请求连接
    phone.connect(('127.0.0.1',8082))
    
    #  3,通信
    while True:
        msg=input('请输入发送文字:').strip()
        if len(msg) == 0: continue
        phone.send(msg.encode('utf8'))
        if msg == "q": break
        data=phone.recv(1024)
        print(data.decode('utf8'))
    
    
    #  5,关机
    phone.close()
    

    服务端:

    import socket
    
    #  1,买电话()
    phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    
    
    #  2,装电话卡
    phone.bind(('127.0.0.1',8082))
    
    #  3,开机
    phone.listen(5)
    
    #  4,等待电话请求
    while True:
        conn,client_addr=phone.accept()
    
        #  5,通信(ulinx系统遇到客户端突然断开连接会进入循环,用break可以打断)
        while True:
            try:
                data=conn.recv(1024)
                if data.decode('utf8') == 'q':break
                conn.send(data.upper())
            except Exception:
                break
    
    
        #  6,挂机
        conn.close()
    
    #  7,关机
    # phone.close()
    

    二,基于udp协议的编程

    服务端:

    
    
    import socket
    sever=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    sever.bind(('127.0.0.1',8083))
    while True:
        date,user_addr=sever.recvfrom(1024)
        date=date.upper()
        sever.sendto(date,user_addr)
    

    客户端:

    import socket
    
    client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    while True:
        msg=input('请输入:').strip()
        client.sendto(msg.encode('utf8'),('127.0.0.1',8083))
        res,sever_addr=client.recvfrom(1024)
        print(res.decode('utf8'))
    
  • 相关阅读:
    COGS 577 蝗灾 线段树+CDQ分治
    BZOJ 1305 二分+网络流
    BZOJ 1066 Dinic
    BZOJ 3544 treap (set)
    BZOJ 3940 AC自动机
    BZOJ 1503 treap
    BZOJ 3172 AC自动机
    BZOJ 2553 AC自动机+矩阵快速幂 (神题)
    BZOJ1901 ZOJ2112 线段树+treap (线段树套线段树)
    BZOJ 3196 线段树套平衡树
  • 原文地址:https://www.cnblogs.com/Franciszw/p/12740192.html
Copyright © 2020-2023  润新知