基于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) 关闭
相关推荐
掌心天涯2 小时前
大疆御Pro加装4G模块
网络·智能路由器
志栋智能2 小时前
AI驱动的自动化运维机器人:从“数字劳动力”到“智能协作者”的进化
大数据·运维·网络·人工智能·机器人·自动化
guizhoumen3 小时前
建站从零开始之域名、服务器和CMS网站程序的选择
运维·服务器·网络
WrkZmkvJ3 小时前
博世汽车电驱仿真Simulink 模型, 同步电机和异步电机模型, 相电流完美波形 MPTA+...
tcp/ip
国科安芯3 小时前
多相交错并联系统的时钟同步精度与输入纹波抵消效应研究
网络·单片机·嵌入式硬件·fpga开发·性能优化
三万棵雪松3 小时前
【Linux网络编程试验方案】
linux·服务器·网络·嵌入式linux
枷锁—sha3 小时前
【CTFshow-pwn系列】03_栈溢出【pwn 047】详解:Ret2Libc 之 已知关键地址
网络·安全·网络安全
『往事』&白驹过隙;3 小时前
系统编程的内存零拷贝(Zero-Copy)技术
linux·c语言·网络·c++·物联网·iot
XiaoHu02074 小时前
Linux高级IO
网络