• 网络编程基础【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的链接
  • 相关阅读:
    IE盒子模型和标准W3C盒子模型
    [转载] MVC3自定义标签,给Html.ActionLink加上支持图片链接的功能
    MVC3获取登录用户名
    [转]APS.netMVC的ViewModel问题
    [转载]Js小技巧||给input type=“password”的输入框赋默认值
    [资料]aspnetdb.mdf数据库的建立和使用
    [转] .net网页中插入Flash
    [转]Membership、MembershipUser和Roles类
    [小技巧]提交按钮
    asp.net mvc中session的使用 样例
  • 原文地址:https://www.cnblogs.com/luoahong/p/9896030.html
Copyright © 2020-2023  润新知