zoukankan      html  css  js  c++  java
  • 网络编程基础【day09】:简单socket实例(二)

    本节内容

    1、概述

    2、socket实例

    3、总结

    一、概述

      之前我们只是介绍了soket的概念和一些逻辑图表,下面我们来看看,socket的客户端和服务端到底是怎么用的?

    二、socket实例

    2.1 客户端

    2.1.1 客户端代码逻辑图

    2.1.2 客户端代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import  socket   #导入socket模块
     
    client = socket.socket()  #创建socket实例
    client.connect(("localhost",6969))  #建立连接
    send_data = "hello word!"   #发送的字符串
    send_data = send_data.encode() #因为发送是bytes类型,所以这边先转码成bytes类型
    client.send(send_data)  #发送数据,这边发送的是字节类型,也就是bytes类型
    data = client.recv(1024)  #接收服务端的数据,这边设置接收1024字节  1kb=1024字节
    print("server rece:",data.decode())
    client.close()   #关闭与服务端的链接

    2.2 服务端

    2.2.1 服务端代码逻辑图 

    2.2.2 服务端代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import socket
     
    sever = socket.socket()  #创建服务端实例
    sever.bind(("localhost",6969))   #绑定客户端ip和端口
    sever.listen()   #监听端口
    print("我在电话了....")
    conn,addr = sever.accept()   #接收客户端,并且返回连接标志位(conn)实例,和对方的ip地址(addr)
    data = conn.recv(1024)   #接收客户端发过来的数据,接收的也是bytes类型的数据
    print("我的电话来了")
    print("client data:",data.decode())
    conn.send(data.upper())  #发送数据至服务端,注意这边发送的也是字节类型,是bytes类型
    sever.close()  #关闭服务端

    三、总结

    1. python2中可客户端或者服务端均可发送字符串和字节,但是在python3中只能发字节,也就bytes类型的比特流
    2. 服务端接收客户端的链接时,会返回跟客户端的链接标志位的实例和对方ip地址+随机端口号
    3. 此例子只是TCP/IP协议的socket链接,后面继续学习UDP的链接
  • 相关阅读:
    有没有对象???new一个???
    原生数组的方法--翻转
    rclone的基本用法
    golang 文件操作
    记一次挖矿程序处理 firstpress
    python 第三方库 网络 requests
    python 第三方库 时间 arrow
    ansible playbook loop 翻译
    硬盘性能测试工具之bonnie++
    磁盘性能测试工具之fio
  • 原文地址:https://www.cnblogs.com/luoahong/p/9896030.html
Copyright © 2011-2022 走看看