python 基础学习socket -TCP编程

什么是TCP

传输控制协议(TCP:Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP协议的运行可划分为三个阶段:连接建立、数据传送和连接终止。

很多重要的机制保证了TCP的可靠性和强壮性,包括:

  • 使用序号,对收到的TCP报文段进行排序以及检测重复的数据。
  • 使用校验和检测报文段的错误,即无错传输。
  • 使用确认和计时器来检测和纠正丢包或延时。
  • 流控制。
  • 拥塞控制。
  • 丢失包的重传。

TCP编程

案例

TCP服务端:

python 复制代码
import socket
import threading

#创建TCP/IP socket
#绑定IP地址和端口
#监听连接
#接收客户端请求
#发送数据
#关闭连接

def handle_client(client_socket,client_addr):
    try:
        while True:
            content = client_socket.recv(1024).decode('utf-8')
            if not content:
                break
            print(f"客户端{client_addr[0]}说:{content}")
            client_socket.send(b"Hello, client!")
    except Exception as e:
        print(f"客户端{client_addr[0]}异常退出:{e}")
    finally:
        client_socket.close()

tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_socket.bind(('0.0.0.0', 8080))
tcp_socket.listen(50)
#等待客户端连接
while True:
    client_socket, client_addr = tcp_socket.accept()
    print(f"客户端{client_addr[0]}已连接")
    #创建新线程处理客户端请求
    t = threading.Thread(target=handle_client, args=(client_socket, client_addr))
    t.start()
    t.join()

TCP客户端:

python 复制代码
import socket

#创建tcp socket
#创建连接到服务器的socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#连接到服务器
client_socket.connect(('127.0.0.1', 8080))
while True:
#发送数据
    client_socket.send(input("请向服务器发送数据:").encode('utf-8'))
    #接收数据
    data = client_socket.recv(1024).decode('utf-8')
    print(f"从服务器接收到的数据:{data}")
#关闭连接
#SOCK_STREAM:使用TCP协议
client_socket.close()
相关推荐
兜兜转转了多少年1 分钟前
《Python 应用机器学习:代码实战指南》笔记2 从0理解机器学习 —— 核心概念全解析
笔记·python·机器学习
reasonsummer5 分钟前
【教学类-70-04】20251231小2班幼儿制作折纸方镜(八卦神兽镜)
python·通义万相
IT·小灰灰11 分钟前
大模型API成本优化实战指南:Token管理的艺术与科学
人工智能·python·数据分析
MarkHD13 分钟前
智能体在车联网中的应用:第37天 CARLA仿真中的端到端车道保持:基于CNN模仿学习的自动驾驶实践
学习·cnn·自动驾驶
一 乐14 分钟前
景区管理|基于springboot + vue景区管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
Amelia11111118 分钟前
day41
python
@Luminescence18 分钟前
conda指令汇总及入门(持续更新ing)
python·conda
秃了也弱了。18 分钟前
python实现离线文字转语音:pyttsx3 库
开发语言·python
week_泽18 分钟前
网安基础_1_补充_网络安全渗透测试学习笔记
笔记·学习·web安全
·present·20 分钟前
射频网课学习第八章(低噪声放大器)
学习