• socket编程


    客户端:

    #-*- coding:utf-8 -*-
    #客户端程序
    import socket
    
    client = socket.socket() #1、创建一个客户端对象
    
    client.connect(('localhost',22332)) #2、连接到服务器
    
    client.send(b'hello') #3、发送数据
    
    data = client.recv(1024) #4、接收数据
    
    print('接受的数据:',data)
    
    client.close() #5、关闭客户端
    

     服务器:

    #-*- coding:utf-8 -*-
    #服务器程序
    import socket
    
    server = socket.socket() #1、创建服务器套接字对象
    
    server.bind(('localhost',22332)) #2、绑定ip和端口
    
    server.listen() #3、让套接字对象处于监听状态
    print("正在监听...")
    
    conn,addr = server.accept() #接收客户端报文
    print("报文来了!")
    print("conn:",conn,"addr:",addr)
    
    data = conn.recv(1024) #接收报文中的数据
    print("客户端的数据:",data)
    
    conn.send(data.upper()) #发送响应报文
    
    server.close() #关闭服务器
    

     执行结果:

    客户端:

    接受的数据: b'HELLO'
    

     服务器:

    正在监听...
    报文来了!
    conn: <socket.socket fd=356, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 22332), raddr=('127.0.0.1', 63173)> addr: ('127.0.0.1', 63173)
    客户端的数据: b'hello'
    [Finished in 3.4s]
    

     后记:

    在sublime3中运行程序时报错

    [Decode error - output not utf-8]

    解决方式如下:

    在插件目录下的User目录下新建一个文件python3.6.sublime-build,内容如下

    {
        "cmd": ["python", "-u", "$file"],
        "file_regex": "^[ ]*File "(...*?)", line ([0-9]*)",
        "selector": "source.python",
        "encoding":"cp936"
    }
    
  • 相关阅读:
    Helpers Overview
    Validation
    Support Facades
    Session Store
    位运算(参考百科)
    开源项目_可能使用到的开源项目集合
    秒杀系统架构分析与实战(转)
    shell命令之根据字符串查询文件对应行记录
    MySQL做为手动开启事务用法
    spring 加载bean过程源码简易解剖(转载)
  • 原文地址:https://www.cnblogs.com/leomei91/p/7127679.html
Copyright © 2020-2023  润新知