zoukankan      html  css  js  c++  java
  • Python中的socket

    socket()模块函数用法

    import
    socket socket.socket(socket_family,socket_type,protocal=0) socket_family 可以是 AF_UNIX 或 AF_INET。socket_type 可以是 SOCK_STREAM 或 SOCK_DGRAM。protocol 一般不填,默认值为 0。 获取tcp/ip套接字 tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 获取udp/ip套接字 udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 由于 socket 模块中有太多的属性。我们在这里破例使用了'from module import *'语句。使用 'from socket import *',我们就把 socket 模块里的所有属性都带到我们的命名空间里了,这样能 大幅减短我们的代码。 例如tcpSock = socket(AF_INET, SOCK_STREAM)

     

    socket通信流程与打电话流程类似,我们就以打电话为例来实现一个low版的套接字通信

    服务端:

    import socket
    
    #1、买手机
    phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #tcp称为流式协议,udp称为数据报协议SOCK_DGRAM
    # print(phone)
    
    #2、插入/绑定手机卡
    # phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    phone.bind(('127.0.0.1',8082))
    
    #3、开机
    phone.listen(5) # 半连接池,限制的是请求数
    
    #4、等待电话连接
    print('start....')
    conn,client_addr=phone.accept() #(三次握手建立的双向连接,(客户端的ip,端口))
    # print(conn)
    print(client_addr)
    
    #5、通信:收发消息
    while True: # 通信循环
        data=conn.recv(1024) #最大接收的字节数
        print('来自客户端的数据',data)
        conn.send(data.upper())
    
    #6、挂掉电话连接
    conn.close()
    
    #7、关机
    phone.close()

    客户端:

    import socket
    
    #1、买手机
    phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    print(phone)
    #2、拨电话
    phone.connect(('127.0.0.1',8082)) # 指定服务端ip和端口
    
    #3、通信:发收消息
    while True:
        msg=input('>>>:').strip()
        phone.send(msg.encode('utf-8'))
        # phone.send(bytes('hello',encoding='utf-8'))
        data=phone.recv(1024)
        print(data)
    
    #4、关闭
    phone.close()
  • 相关阅读:
    设计一个洗牌的程序?就是将这副牌进行随机交换
    STL中vector,Map,Set的实现原理
    实现一个Memcpy函数:将源指针所指的区域从起始地址开始的n个字节复制到目的指针所指区域
    四个名词(很常见):虚拟内存,虚拟内存地址(线性地址),物理内存,物理内存地址,逻辑地址
    进程的状态
    ubuntu VNC中Xfce4中Tab键失效的解决方法
    GPU安装
    Parted 手册
    opesntack 底层共享存储 迁移配置
    mysql主从同步
  • 原文地址:https://www.cnblogs.com/huyingsakai/p/9275616.html
Copyright © 2011-2022 走看看