基于TCP的socket编程

1. TCP Socket 是什么

TCP:面向连接、可靠、有序、字节流(stream)

Socket:操作系统提供的网络编程接口(文件描述符/句柄)

一句话:

TCP socket 编程就是让两台主机通过"可靠字节流通道"收发数据。

TCP的关键特点 (决定代码写法)

面向连接:先 connect/accept 才能 send/recv

字节流:没有"消息边界" → 会出现粘包/拆包

可靠有序:丢包重传由内核处理,但你仍要处理断线、超时等

2. TCP 通信流程(必须背熟)

服务端(Server)

socket() 创建监听套接字

bind() 绑定 IP:端口

listen() 进入监听状态

accept() 接受连接 → 得到"已连接socket"

recv()/send() 收发数据(循环)

close() 关闭

客户端(Client)

socket() 创建套接字

connect() 连接服务器

send()/recv() 收发数据(循环)

close() 关闭

3. 核心 API 速查(Linux)

复制代码
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
cpp 复制代码
socket(int domain, int type, int protocol)
AF_INET(IPv4) / AF_INET6
SOCK_STREAM(TCP)
bind(fd, sockaddr*, len) 绑定地址
listen(fd, backlog) 监听
accept(fd, ...) 接受连接
connect(fd, ...) 发起连接
send(fd, buf, len, flags) 发送
recv(fd, buf, len, flags) 接收
close(fd) 关闭
相关推荐
TheBestRucy11 分钟前
Python 九阳神功之肆:网络编程 · Socket 从入门到实战
开发语言·网络·python
熊IT13 分钟前
HTTP 代理检测工具:快速检查代理可用性、出口 IP 与延迟
网络协议·tcp/ip·http
hehelm15 分钟前
仿muduo库实现高并发服务器—Channel类
linux·服务器·开发语言·网络·c++
ybdesire20 分钟前
注入型漏洞以及agent-audit的检测原理
网络·安全·风险·智能体·ai安全
李白你好27 分钟前
今日网络技术热点:【计算机网络 | 数据链路层8:CSMA/CD
网络·计算机网络
hehelm29 分钟前
仿muduo库实现高并发服务器—EventLoop
linux·服务器·网络·c++
今儿敲了吗34 分钟前
CN——HTTP 工作流程
网络·网络协议·http
mengge.cloud42 分钟前
0823Keepalived + LVS(DR) + MariaDB主主 小白完整实战教程
linux·运维·网络·oracle·负载均衡·mariadb·lvs
爱吃苹果的梨叔6 小时前
训练集群网络中断怎么办?智算机房的 Console 串口排障方案
网络·python·智能路由器·php
xiaohaiAIgeo10 小时前
【2026年】医药研发实验室GLP的通风设计要求:稳定性可验证性与合规性
网络·人工智能·科普知识