• python中的socket


    创建TCP/IP套接字
    tcpSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    创建UDP/IP套接字
    udpSocket = socket.socket(socket.AF_INFT,socket.SOCK_DGRAM

    常用套接字对象方法

    服务器套接字方法

    1. bind(),将地址绑定到套接字上
    2. listen(),设置并启动TCP监听器
    3. accept(),被动接受TCP客户端连接,一直等待直到连接到达

    客户端套接字方法

    1. connect(),主动发起TCP服务器连接
    2. connect_ex(),connect的扩展版本,会以错误码的形式返回问题

    普通套接字方法

    1. recv(),接受TCP消息
    2. recv_into(),接受TCP消息到指定的缓冲区
    3. send(),发送TCP消息
    4. sendall(),完整地发送TCP消息
    5. recvfrom(),接受UDP消息
    6. sendto(),发送UDP消息

    创建TCP/IP服务 客户端

    from socket import*
    from time import ctime
    HOST = ''
    PORT = 21567
    BUFSIZ = 1024
    ADDR = (HOST,PORT)
    
    tcpSerSock = socket(AF_INET,SOCK_STREAM)
    tcpSerSock.bind(ADDR)
    tcpSerSock.listen(5)
    
    while True:
        print("waiting for connection...")
        tcpCliSock,addr = tcpSerSock.accept()
        print("...connected from :",addr)
    
        while True:
            data = tcpCliSock.recv(BUFSIZ).decode()
            if not data:
                break
            tcpCliSock.send(('[%s] %s ' % (ctime(),data)).encode())
    
    tcpSerSock.close()
    
    from socket import*
    HOST = '127.0.0.1'
    PORT = 21567
    BUFSIZ = 1024
    ADDR = (HOST,PORT)
    
    tcpCliSock = socket(AF_INET,SOCK_STREAM)
    tcpCliSock.connect(ADDR)
    
    while True:
        data = input("> ")
        if not data:
            break
        tcpCliSock.send(data.encode())
        data = tcpCliSock.recv(BUFSIZ).decode()
        if not data:
            break
        print(data)
    
    tcpCliSock.close()
    

    创建UDP/IP服务 客户端

    from socket import*
    from time import ctime
    
    HOST = ''
    PORT = 21568
    BUFSIZ = 1024
    ADDR = (HOST,PORT)
    
    udpSerSock = socket(AF_INET,SOCK_DGRAM)
    udpSerSock.bind(ADDR)
    
    while True:
        print("waiting for message...")
        data,addr = udpSerSock.recvfrom(BUFSIZ)
        data = data.decode()
        udpSerSock.sendto(('[%s] %s ' %(ctime(),data)).encode(),addr)
        print("...received from and returned to :",addr)
    
    udpSerSock.close()
    
    from socket import*
    
    HOST = "localhost"
    PORT = 21568
    BUFSIZ = 1024
    ADDR = (HOST,PORT)
    
    udpCliSock = socket(AF_INET,SOCK_DGRAM)
    while True:
        data = input("> ")
        data = data.encode()
        if not data:
            break
        udpCliSock.sendto(data,ADDR)
        data,ADDR = udpCliSock.recvfrom(BUFSIZ)
        data = data.decode()
        if not data:
            break
        print(data)
    
    udpSerSock.close()
    

  • 相关阅读:
    CSS知识点总结(一)
    HTML知识点总结(二)
    HTML/CSS 基础知识总结(一)
    Nodejs 发送邮件
    Nodejs 发送短信验证码
    Nodejs 上传下载功能的实现(同步)
    Nodejs报错集
    Nodejs的安装及配置
    nodejs+bootstrap实现分页效果
    切换Mac默认PHP版本为MAMP
  • 原文地址:https://www.cnblogs.com/Alex3O/p/13261972.html
Copyright © 2020-2023  润新知