• socket 客户端服务端循环发送消息


    服务端:

    from socket import *    #这种插入方法,可以直接省略‘socket.’
    ip_d = ('192.168.1.4',999)
    lenth_b = 1024
    rivers = 5
    
    service_motion = socket(AF_INET,SOCK_STREAM)    #次方法与service_motion = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    ''' 
    次方法与service_motion = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    
    '''
    service_motion.bind(ip_d)
    service_motion.listen(rivers)
    
    conn,addr = service_motion.accept()
    
    while True:
        get_g = conn.recv(lenth_b)  #接受客户端发送过来的数据bian'yi
        print('服务端发送的信息是',get_g.decode('utf8'))  #打印编译后的get_g
        if get_g.decode('utf-8') != 'q':   #判断编译后的值是否是q,如果不是q,则给客户端返回一个值,否则,break
            conn.send(('%s%s' %(get_g,'返回值')).encode('utf8'))
        else:break
    
    conn.close()
    service_motion.close()
    
    #服务端的接受与发送都是用conn来完成的
    #服务端是先接受,再发送
    

      

    客户端:

    from socket import *
    
    ip_d = ('192.168.1.4',999)
    lenth_b = 1024
    rivers = 5
    
    user = socket(AF_INET,SOCK_STREAM)
    user.connect(ip_d)
    
    while True:
        at = input('输入:').strip().lower()  #输入值
        user.send(at.encode('utf8')) #将输入的值编码后发送给服务端
        ge = user.recv(lenth_b)   #接受服务端的返回值,并附给ge
        print('客户端收到的内容是',ge.decode('utf_8'))  #打印ge
        if at != 'q':continue
        else:break
    
    user.close()
    
    #总结
    #先运行服务端,然后才能运行客户端
    #客户端的发送和链接都是客户端名(user)自己完成的
    #客户端 是先发送,然后再接受
    

      

  • 相关阅读:
    DataTable转换成IList<T>的简单实现
    websocket
    获取用户使用设备信息
    判断对象是否相等
    关于PC适配
    树形数据结构实现平铺展示
    埋点
    多层表单验证
    表格行拖动,数据中状态值不同的禁止拖拽
    element tree 深度查询
  • 原文地址:https://www.cnblogs.com/lhqlhq/p/8945392.html
Copyright © 2020-2023  润新知