Socket编程是网络编程的基础,它允许我们在不同的计算机之间进行通信。本教程将介绍Socket编程的基本概念、原理以及如何在Python中进行Socket编程。

基本概念

Socket是一种特殊的接口,它允许不同主机上的进程之间进行通信。Socket编程主要涉及以下三个概念:

  • IP地址:标识网络中的每台计算机。
  • 端口号:标识主机上的每个应用程序。
  • 套接字:连接IP地址和端口号的实体。

Python中的Socket编程

Python提供了socket模块,用于进行Socket编程。

创建Socket

import socket

# 创建一个socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

连接服务器

# 连接到服务器
s.connect(('localhost', 12345))

发送数据

# 发送数据
s.sendall(b'Hello, server!')

接收数据

# 接收数据
data = s.recv(1024)
print('Received', repr(data))

关闭Socket

# 关闭socket
s.close()

示例代码

以下是一个简单的客户端-服务器示例:

# 服务器端
import socket

# 创建socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定地址和端口
server_socket.bind(('localhost', 12345))

# 监听连接
server_socket.listen()

# 接受连接
client_socket, client_address = server_socket.accept()
print('Connected by', client_address)

# 接收数据
data = client_socket.recv(1024)
print('Received', repr(data))

# 发送数据
client_socket.sendall(b'Thank you for the message')

# 关闭连接
client_socket.close()
server_socket.close()
# 客户端
import socket

# 创建socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接到服务器
client_socket.connect(('localhost', 12345))

# 发送数据
client_socket.sendall(b'Hello, server!')

# 接收数据
data = client_socket.recv(1024)
print('Received', repr(data))

# 关闭连接
client_socket.close()

扩展阅读

如果您想了解更多关于Socket编程的知识,可以阅读以下文章:

Socket编程