美文网首页Python 随堂随记
Python之socket(套接字)

Python之socket(套接字)

作者: NataliaTsunako | 来源:发表于2017-07-26 17:40 被阅读0次

    [Python]提供了两个基本的 socket 模块。
    第一个是 Socket,它提供了标准的 BSD Sockets API。
    第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。
    下面讲的是Socket模块功能
    1、Socket 类型
    套接字格式:
    socket(family,type[,protocal]) 使用给定的地址族、套接字类型、协议编号(默认为0)来创建套接字。

    图片.png

    2、Socket 函数

    注意点:

    1)TCP发送数据时,已建立好TCP连接,所以不需要指定地址。UDP是面向无连接的,每次发送要指定是发给谁。

    2)服务端与客户端不能直接发送列表,元组,字典。需要字符串化repr(data)。

    图片.png 图片.png

    3、socket编程思路

    TCP服务端:

    1 创建套接字,绑定套接字到本地IP与端口

    socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.bind()

    2 开始监听连接 #s.listen()

    3 进入循环,不断接受客户端的连接请求 #s.accept()

    4 然后接收传来的数据,并发送给对方数据 #s.recv() , s.sendall()

    5 传输完毕后,关闭套接字 #s.close()

    TCP客户端:

    1 创建套接字,连接远端地址

       # socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.connect()
    

    2 连接后发送数据和接收数据 # s.sendall(), s.recv()

    3 传输完毕后,关闭套接字 #s.close()

    4、 Socket选项

    python定义了setsockopt()和getsockopt(),一个是设置选项,一个是得到设置。这里主要使用setsockopt(),具体结构如下:

    setsockopt(level,optname,value)

    level定义了哪个选项将被使用。通常情况下是SOL_SOCKET,意思是正在使用的socket选项。它还可以通过设置一个特殊协议号码来设置协议选项,然而对于一个给定的操作系统,大多数协议选项都是明确的,所以为了简便,它们很少用于为移动设备设计的应用程序。

    optname参数提供使用的特殊选项。关于可用选项的设置,会因为操作系统的不同而有少许不同。如果level选定了SOL_SOCKET,那么一些常用的选项见下表:

    图片.png

    相关文章

      网友评论

        本文标题:Python之socket(套接字)

        本文链接:https://www.haomeiwen.com/subject/gleokxtx.html