zoukankan      html  css  js  c++  java
  • python socket通信案例

    • 实现通信需要有IP和端口号

      大致实现思路:

                

    • 实现消息发送和接收具体过程

      1、  客户端(不能发送空消息!!)

        

    #客户端
    #!!!!!不能发空消息
    import socket
    client=socket.socket()#声明协议类型,不写类型使用默认的
    client.connect(('localhost',2221))#connect只能传一个参数,可用tuple实现传两个参数,即IP和端口号
    while True:
        data=input('send mesage>>>').strip()#输入空格,回车等都视为空
        if len(data)==0:#处理发空消息
            continue
        client.send(data.encode('utf-8'))#只能传输bytes类型的数据
        data2=client.recv(1024)
        print('rev:',data2.decode())
    client.close()

      2、  服务器端

      

    #服务器端
    import socket
    sever=socket.socket()
    sever.bind(('localhost',2221))
    sever.listen(5)#监听
    print('等待数据')
    while True:
        conn,addr=sever.accept()#等待数据,conn为客户端连到服务器端为其生成的一个连接实例
        while True:
            # print('数据来啦')
            data=conn.recv(1024)#通过实例来接收数据
            if not data:#处理服务器断开的情况,即不发送消息了
               print('client has lost...')
               break
            print('receive:',data)
            conn.send(data.upper())#bytes
    
    sever.close()
    View Code

      

      ps:消息的发送和接收都有大小限制

      Windows上好像不能实现一个客户端连接断开,另一个客户端接着发送消息

      客户端断开连接后,服务器也关闭了。。。

  • 相关阅读:
    android数据恢复
    UVA 690 Pipeline Scheduling
    2017 国庆湖南 Day4
    2017 国庆湖南 Day5
    2017 国庆湖南 Day6
    2017国庆 清北学堂 北京综合强化班 Day1
    2017 国庆湖南Day2
    bzoj 2962 序列操作
    UVA 818 Cutting Chains
    UVA 211 The Domino Effect
  • 原文地址:https://www.cnblogs.com/Aprilnn/p/9179896.html
Copyright © 2011-2022 走看看