Python中的套接字编程

在双向通信通道中,套接字是两个端点。套接字可以在同一台机器或不同洲的进程之间进行通信。

套接字由不同类型的通道TCP,UDP实现。

为了创建Socket,我们需要socket模块和socket.socket()函数。

语法

my_socket = socket.socket (socket_family, socket_type, protocol=0)

服务器套接字中的不同方法

my_socket.bind()

此方法用于将地址(主机名,端口号对)绑定到套接字。

my_socket.listen()

此方法用于设置和启动TCP侦听器。

my_socket.accept()

此方法用于接受TCP客户端连接,等待连接到达(阻塞)。

客户端套接字中的不同方法

my_socket.connect()

此方法主动启动TCP服务器连接。

通用套接字方法

my_socket.recv()

该方法接收TCP消息

my_socket.send()

该方法传输TCP消息

my_socket.recvfrom()

此方法接收UDP消息

my_socket.sendto()

此方法传输UDP消息

my_socket.close()

此方法关闭套接字

my_socket.gethostname()

此方法返回主机名。

服务器插座

示例

import socket
my_socket = socket.socket()      # Create a socket object
my_host = socket.gethostname()
my_port = 00000# Store a port for your service.
my_socket.bind((my_host, my_port))
my_socket.listen(5)      # Now wait for client connection.
while True:
   cl, myaddr = my_socket.accept()     # Establish connection with client.
   print ('Got connection from', myaddr)
   cl.send('Thank you for connecting')
   cl.close()     # Close the connection

客户端插座

示例

import socket      # Import socket module
my_socket = socket.socket()      # Create a socket object
my_host = socket.gethostname()     # Get local machine name
my_port = 00000# Store a port for your service.
my_socket.connect((my_host, my_port))
print (my_socket.recv(1024))
my_socket.close