zoukankan      html  css  js  c++  java
  • 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()
    

  • 相关阅读:
    Binary Tree Maximum Path Sum
    ZigZag Conversion
    Longest Common Prefix
    Reverse Linked List II
    Populating Next Right Pointers in Each Node
    Populating Next Right Pointers in Each Node II
    Rotate List
    Path Sum II
    [Leetcode]-- Gray Code
    Subsets II
  • 原文地址:https://www.cnblogs.com/Alex3O/p/13261972.html
Copyright © 2011-2022 走看看