• python socket基本连接功能实现


    socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信

    在应用中,要写两个程序来通信,一个是服务器端程序,一个是客户端程序

    服务器端程序:

    import socket
    # 建立一个服务端
    server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#创建一个socket
    server.bind(('localhost',9090)) #将socket绑定到监听的端口
    server.listen(5) #开始监听 5表示可以使用五个链接排队
    conn,addr = server.accept()
    #等待链接,conn是建立连接后,获取的连接socket,我们可以用来发送和接受消息,
    # 为什么不用上边的那个socket呢,因为上边的那个socket没有连接另一端的地址的信息,
    # 所以只有接收到消息后,才能建立当前的这个socket;addr就是客户服务器地址信息
    data = conn.recv(1024)  #接收数据,data是byte类型
    print('recive:',data.decode()) #打印接收到的数据
    conn.sendall('收到请求'.encode('utf-8'))#发送数据

    客户端程序

    import socket# 客户端 发送一个数据,再接收一个数据
    client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #声明socket类型,同时生成链接对象
    #client.bind(('localhost',9091)) #绑定要监听的端口,这一步可以不需要,如果绑定了,
    # 那么客户服务器就会用这个固定的端口发送消息,如果没绑定,端口就是随机的用
    client.connect(('127.0.0.1',9090)) #建立一个链接,连接到本地的9090端口
    msg = "来自请求服务器的--请求"
    client.send(msg.encode('utf-8'))  #发送一条信息 python3 只接收btye流
    data = client.recv(1024) #接收一个信息,并指定接收的大小 为1024字节
    print('recv:',data.decode()) #输出接收到的信息

     python 文档:https://docs.python.org/3/library/socket.html#socket-objects

  • 相关阅读:
    Vue基础系列(五)——Vue中的指令(中)
    Vue基础系列(四)——Vue中的指令(上)
    Vue基础系列(三)——Vue模板中的数据绑定语法
    Vue基础系列(二)——Vue中的methods属性
    Vue基础系列(一)——Vue入坑第一篇
    MongoDB学习笔记(一)
    设计模式————单例模式和有上限的多例模式
    设计模式————6大设计原则
    数据结构和算法————二分查找
    OpenJDK1.8.0 源码解析————HashMap的实现(二)
  • 原文地址:https://www.cnblogs.com/mghhzAnne/p/10844473.html
Copyright © 2020-2023  润新知