Python学习:网络编程篇
在数字世界的广阔天地中,网络编程就像是一场环球旅行,让我们的数据包能够穿越千山万水,到达遥远的服务器。在Python中,网络编程不仅是一种技术,更是一种艺术,它让我们能够轻松地与世界各地的计算机进行交流。让我们一起踏上这场网络编程的探险之旅吧!
1. Socket编程
Socket是网络编程的基石,它就像是一扇窗户,让我们的程序能够发送和接收数据。在Python中,我们可以使用socket
模块来创建socket。
创建Socket服务器:
Socket服务器是一个等待客户端连接的程序。
import socket
def start_server(host, port):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen()
while True:
client_socket, addr = server_socket.accept()
print(f"客户端连接:{
addr}")
client_socket.send(b"欢迎连接到服务器!")
client_socket.close()
start_server('localhost', 9999)
在这个例子中,我们创建了一个socket服务器,它监听在localhost
的9999
端口上,当有客户端连接时,它发送一条欢迎消息。
创建Socket客户端:
Socket客户端是一个发起连接请求的程序。
import socket
def connect_to_server(host, port):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, port))
message = client_socket.recv(1024)
print(message.decode())
client_socket.close()
connect_to_server('localhost', 9999)
在这个例子中,我们创建了一个socket客户端,它连接到localhost
的9999
端口上的服务器,并接收一条消息。
实例:创建一个聊天服务器和客户端
# chat_server.py
import socket
def start_chat_server(host, port):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen()