zoukankan      html  css  js  c++  java
  • Python 简单soket例子

     
    简单的soket例子

    Python 2.0 客户端服务端传输

      1.可发字符串,可发字节 bys类型

     

    Python 3.0 客户端服务端传输

      1.只能发bys,比特流的类型。

      2.bys类型只能接收 ASCLL码里的数据类型。

      3.如果想传入中文:

     

    简单的soket链接例子

    需求:服务端帮客户端处理字符串信息为大写

     

    客户端

    #客户端
    import socket
    
    #声明协议类型,同事生成socket连接对象
    client = socket.socket()
    
    #链接地址和端口,元组(本地,端口)
    client.connect(('localhost',6969))
    
    #发送数据 b将字符串转为bys类型
    client.send(b"Hello World!")
    
    #接收服务器端的返回,需要声明收多少,默认1024字节
    data = client.recv(1024)
    
    #打印data是recv的data
    print("recv:",data)
    
    #关闭接口
    client.close()
    #结果 #recv: b'HELLO WORLD!'

    服务端

    #服务端
    import socket
    
    #声明类型,生成socket链接对象
    server = socket.socket()
    
    #监听接收端口元组(本地,端口),绑定要监听的端口
    server.bind(('localhost',6969))
    
    #监听
    server.listen()
    
    print("我要开始等待客户端了")
    #1.等待客户端 #会返回链接的标记位conn,与连接的地址
    #2.客户端同过conn,addr进行通话
    #3.conn就是客户端连接过来而在服务器端为其生成的一个连接实例
    conn,addr = server.accept()
    
    #查看标记位与IP地址
    print(conn,addr)
    
    
    print("客户端 他 进来了!")
    #接收数据
    data = conn.recv(1024)
    print("recv:",data)
    
    #返回一个值,处理变为大写
    conn.send(data.upper())
    
    
    #关闭链接
    server.close()
    #结果
    #我要开始等待客户端了
    # <socket.socket fd=336, family=AddressFamily.AF_INET, 
    # type=SocketKind.SOCK_STREAM, proto=0,
    # laddr=('127.0.0.1', 6969), 
    # raddr=('127.0.0.1', 55652)> ('127.0.0.1', 55652)
    #客户端 他 进来了!
    #recv: b'Hello World!'

    注:客户端操作

    (1)传送时“ .encode("utf-8") ”转成ASCLL码(发不了空)。

    (2) 返回时" .decode() "UTF-8转成 Unicode。

     

     

  • 相关阅读:
    10.15
    10.14
    11.12
    10.10
    10.9
    如何向jar包里写文件
    mycat的配置文件
    启动spring boot打成的zip包脚本
    通俗易懂的rpc原理
    当Mockito遭遇使用注解注入的变量
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/7838407.html
Copyright © 2011-2022 走看看