Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python socket库

作者:半写的温柔ノ   发布日期:2026-03-20   浏览:66

import socket

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

# 绑定套接字到地址和端口
server_address = ('localhost', 10000)
print(f'starting up on {server_address[0]} port {server_address[1]}')
sock.bind(server_address)

# 监听传入连接
sock.listen(1)

while True:
    # 等待连接
    print('waiting for a connection')
    connection, client_address = sock.accept()

    try:
        print(f'connection from {client_address}')

        # 接收数据
        while True:
            data = connection.recv(16)
            print(f'received {data}')
            if data:
                print('sending data back to the client')
                connection.sendall(data)
            else:
                print('no more data from', client_address)
                break

    finally:
        # 清理连接
        connection.close()

解释说明:

  1. 创建套接字socket.socket(socket.AF_INET, socket.SOCK_STREAM) 创建了一个TCP/IP套接字,使用IPv4地址族 (AF_INET) 和流式套接字类型 (SOCK_STREAM)。
  2. 绑定地址和端口sock.bind(server_address) 将套接字绑定到指定的地址和端口。这里我们使用的是本地主机 (localhost) 和端口 10000
  3. 监听连接sock.listen(1) 让套接字开始监听传入连接,参数 1 表示允许的最大排队连接数。
  4. 接受连接connection, client_address = sock.accept() 阻塞等待客户端连接,当有客户端连接时返回一个新的套接字对象 connection 和客户端地址 client_address
  5. 接收和发送数据:在内层 while 循环中,服务器从客户端接收数据并将其回送回去。如果收到的数据为空,则表示客户端关闭了连接。
  6. 清理连接:无论是否发生异常,都会执行 finally 块中的代码,确保连接被正确关闭。

这个示例展示了如何使用Python的 socket 库创建一个简单的TCP服务器。

上一篇:python ndarray

下一篇:set在python中代表什么

大家都在看

python 二维码识别

python excel 库

python时间格式

pythoneval函数用法

列表切片操作python

python读取文件路径

staticmethod在python中有

python 保存json文件

python开发windows应用程序

python中len是什么意思

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站