zoukankan      html  css  js  c++  java
  • 最简单的网络通讯

    最简单的网络通讯

    server端:

    import socket
    
    sk = socket.socket()          # 创建一个server端的对象
    sk.bind(('127.0.0.1',9001))  # 给server端绑定一个地址
    sk.listen()                   # 开始监听(可以接收)客户端给我的连接了
    
    conn,addr = sk.accept()  # 建立连接 conn是连接
    conn.send(b'hello')
    msg = conn.recv(1024)
    print(msg)
    conn.close()     # 关闭连接
    
    sk.close()
    

    client端:

    import socket
    
    sk = socket.socket()
    sk.connect(('127.0.0.1',9001))
    
    
    msg = sk.recv(1024)
    print(msg)
    sk.send(b'byebye')
    
    sk.close()
    

    tcp 和多个客户端通讯

    #server端
    import socket
    sk = socket.socket()
    sk.bind(('127.0.0.1',8008))
    sk.listen()
    
    while True:
        conn, addr = sk.accept()
        print('conn',conn)
        while True:
            g = input('请输入:')
            conn.send(g.encode('utf-8'))
            if g.upper() == 'Q':
                break
            msg = conn.recv(1024).decode('utf-8')
            print(msg)
        conn.close()
    sk.close()
    #-------------------------
    #Client端
    import  socket
    sk = socket.socket()
    sk.connect(('127.0.0.1',8008))
    while True:
        msg = sk.recv(1024).decode('utf-8')
        if msg.upper() == 'Q':break
        print(msg)
        g = input('>>>')
        sk.send(g.encode('utf-8'))
        if g.upper() == 'Q':break
    sk.close()
    

    UDP协议通讯

    #udp例子
    #server端------------------
    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    sk.bind(('127.0.0.1',8001))
    while True:
        msg,addr = sk.recvfrom(1024)
        print(msg.decode('utf-8'))
        msg_send = input('>>>')
        if msg_send.upper() == 'Q':break
        sk.sendto(msg_send.encode('utf-8'),addr)
    
    
    #client端  ------------------  
    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    server = ('127.0.0.1',8001)
    while True:
        msg = input('>>>')
        if msg.upper() == 'Q':break
        sk.sendto(msg.encode('utf-8'),server)
        msg2 = sk.recv(1024).decode('utf-8')
        if msg2.upper() =='Q':break
        print(msg2)
    
  • 相关阅读:
    测试同学都应该知道的断言知识...
    自己如何修改Airtest的源码
    如何选择适合你的图像识别算法
    如何测试基于Unity3D引擎的游戏
    Web前端-按钮点击效果(水波纹)
    C# Email 帮助类 EmailHelper
    WinForm 加载大数据时不闪烁的ListView
    LZZ磁力资源搜索4.2.2,整合多个站点,大部分资源都能搜到
    C#7.0新特性和语法糖详解
    6种css3 transform图片悬停动态效果
  • 原文地址:https://www.cnblogs.com/wyh0717/p/13275413.html
Copyright © 2011-2022 走看看