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

python tcp

作者:狂刀血斧   发布日期:2025-11-10   浏览:81

import socket

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

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

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

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

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

        # 接收数据
        while True:
            data = connection.recv(16)
            print(f'Received "{data.decode()}"')
            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() 创建一个 TCP 套接字,socket.AF_INET 表示使用 IPv4 地址,socket.SOCK_STREAM 表示使用 TCP 协议。
  2. 绑定地址和端口

    • 使用 bind() 方法将套接字绑定到指定的地址和端口。这里我们绑定了本地地址 localhost 和端口 10000
  3. 监听连接

    • 使用 listen() 方法使服务器开始监听传入连接,参数 1 表示最多允许 1 个排队的连接请求。
  4. 接受连接

    • 使用 accept() 方法等待并接受客户端的连接请求。返回一个包含连接对象和客户端地址的元组。
  5. 接收和发送数据

    • 使用 recv() 方法从连接中接收数据,16 表示每次最多接收 16 字节的数据。
    • 如果接收到数据,则使用 sendall() 方法将数据回传给客户端。
    • 如果没有更多数据(即客户端关闭了连接),则退出循环。
  6. 清理连接

    • 使用 close() 方法关闭连接,确保资源被正确释放。

这个示例代码实现了一个简单的 TCP 服务器,它会监听来自客户端的连接请求,并将接收到的数据原样回传给客户端。

上一篇:python requests库

下一篇:python __file__

大家都在看

python时间格式

python读取文件路径

staticmethod在python中有

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

python判断路径是否存在

python list.pop

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

Laravel 中文站