📜  Python套接字编程(1)

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

Python套接字编程

Python套接字编程是一种实现网络通信的方法。通过Python套接字编程,您可以创建客户端和服务器应用程序,以便它们可以通过网络进行通信。

套接字(Socket)简介

在Python中,套接字是一个用于网络通信的抽象概念。与其他编程语言相比,Python套接字编程很容易使用,因为Python自动处理数据编码和解码,因此您只需要处理网络通信本身。

套接字具有两个重要属性:协议和地址。协议是指用于通信的协议类型,例如TCP或UDP。地址是指用于标识计算机和应用程序的IP地址和端口号。

创建服务器

下面是一个使用Python套接字编程创建服务器的示例:

import socket

HOST = '127.0.0.1'  # Standard loopback interface address
PORT = 65432        # Port to listen on (non-privileged ports are > 1023)

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen()
    conn, addr = s.accept()
    with conn:
        print('Connected by', addr)
        while True:
            data = conn.recv(1024)
            if not data:
                break
            conn.sendall(data)

在此示例中,我们使用Python内置的socket库创建了一个TCP服务器。服务器侦听一个指定的IP地址和端口号的连接请求。如果有连接请求,服务器将创建一个新连接并将其连接到客户端。随后,服务器将等待客户端发送数据,并在接收到数据后将其返回。

创建客户端

下面是一个使用Python套接字编程创建客户端的示例:

import socket

HOST = '127.0.0.1'  # The server's hostname or IP address
PORT = 65432        # The port used by the server

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    s.sendall(b'Hello, world')
    data = s.recv(1024)

print('Received', repr(data))

在此示例中,我们使用Python内置的socket库创建了一个TCP客户端。客户端将连接到指定IP地址和端口号的服务器,发送Hello, world消息,并等待服务器返回响应。

总结

本文介绍了Python套接字编程的基本知识。通过使用内置的socket库,您可以创建客户端和服务器应用程序,并使用TCP或UDP协议在它们之间进行通信。Python的灵活性使得套接字编程非常易于使用,因此它是一个在网络编程中非常流行的工具。