Python 随堂随记

Python之socket(套接字)

2017-07-26  本文已影响0人  NataliaTsunako

[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
上一篇下一篇

猜你喜欢

热点阅读