📜  套接字及其方法(1)

📅  最后修改于: 2023-12-03 15:23:45.111000             🧑  作者: Mango

套接字及其方法

什么是套接字

套接字(socket)是计算机网络编程中的一种通信机制,它定义了一组接口用于在应用程序之间进行通信。套接字提供了一种标准的编程接口,使得开发者不需要了解网络底层细节,可以方便地实现应用程序之间的通信。

套接字的分类

套接字有两种类型:面向连接的套接字和无连接的套接字。

面向连接的套接字

面向连接的套接字是一种可靠有序的协议,通信双方必须在通信之前建立连接。TCP协议就是一种面向连接的协议。

无连接的套接字

无连接的套接字是一种不可靠无序的协议,通信双方可以直接发送数据。UDP协议就是一种无连接的协议。

套接字的创建

在Python中,可以使用socket模块创建套接字。以下是创建一个TCP套接字的示例代码:

import socket

HOST = '127.0.0.1'  # 服务器IP地址
PORT = 8000  # 服务器端口号

# 创建TCP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定IP地址和端口号
sock.bind((HOST, PORT))

# 开始监听连接
sock.listen(5)
套接字的连接

在创建好套接字的基础上,可以使用connect方法连接到服务器。以下是连接到服务器的示例代码:

import socket

HOST = '127.0.0.1'  # 服务器IP地址
PORT = 8000  # 服务器端口号

# 创建TCP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接服务器
sock.connect((HOST, PORT))
套接字的发送和接收数据

在TCP协议中,发送和接收数据都使用send和recv方法。以下是发送和接收数据的示例代码:

import socket

HOST = '127.0.0.1'  # 服务器IP地址
PORT = 8000  # 服务器端口号

# 创建TCP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接服务器
sock.connect((HOST, PORT))

# 发送数据
sock.send('Hello, World!')

# 接收数据
data = sock.recv(1024)

print data
套接字的关闭

在数据传输完毕之后,需要使用close方法关闭套接字。以下是关闭套接字的示例代码:

import socket

HOST = '127.0.0.1'  # 服务器IP地址
PORT = 8000  # 服务器端口号

# 创建TCP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接服务器
sock.connect((HOST, PORT))

# 发送数据
sock.send('Hello, World!')

# 接收数据
data = sock.recv(1024)

# 关闭套接字
sock.close()