news 2026/1/19 6:57:47

Socket 编程实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Socket 编程实战

各类资料学习下载合集
链接:https://pan.quark.cn/s/770d9387db5f

一、 数据的“快递之旅”:封装与解封装

在网络通信中,数据从一台电脑传到另一台电脑,就像寄快递一样,需要经过层层包装。这个过程被称为数据封装 (Encapsulation)

假设我们在代码中发送字符串"hello, world"

  1. 应用层 (程序员负责)
    • 这是我们最熟悉的层面。数据就是裸露的"hello, world"
    • 如果是 HTTP 协议,可能会封装成GET / HTTP/1.1...
  2. 传输层 (操作系统负责)
    • 为了知道这个数据该交给哪个程序(微信还是QQ),系统会自动给数据加上一个TCP 头部UDP 头部
    • 关键信息:源端口号 (16位) + 目的端口号 (16位)。
  3. 网络层 (操作系统负责)
    • 为了知道数据该发往哪台电脑,系统会再加一个IP 头部
    • 关键信息:源 IP (32位) + 目的 IP (32位)。
  4. 网络接口层 (网卡驱动负责)
    • 最后,加上以太网帧头尾,才能在网线或 WiFi 中传输。

总结:作为程序员,我们只需要关心应用层。剩下的脏活累活,Socket API 和操作系统帮我们全干了。


二、 Socket 编程:网络世界的“插座”

Socket(套接字)源于 UNIX 时代的伯克利研究组。它的出现让网络编程变得像文件读写一样简单:打开 -> 读写 -> 关闭

核心函数速览

  • socket(): 买个手机(创建套接字)。
  • bind(): 办张手机卡(绑定 IP 和端口)。
  • listen(): 等电话(监听连接)。
  • accept(): 接电话(接受连接)。
  • connect(): 拨打电话(发起连接)。
  • send()/recv(): 说话/听话(发送/接收数据)。

三、 代码实战:C 语言实现 TCP 通信

为了演示“应用层只需关注数据”这一理念,我们用 C 语言编写一个最基础的 TCP 客户端和服务器。

1. 服务器端代码 (server.c)

服务器负责监听端口,接收客户端发来的消息。

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<arpa/inet.h>#include<sys/socket.h>#definePORT8888#defineBUFFER_SIZE1024intmain(){intserver_fd,new_socket;structsockaddr_inaddress;intaddrlen=sizeof(address);charbuffer[BUFFER_SIZE]={0};// 1. 创建 Socket (就像买手机
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/18 19:07:11

基于AI的区块链存证动态测试框架

随着2026年多链互操作协议&#xff08;IBC 3.0&#xff09;的普及&#xff0c;数字遗嘱存证面临跨链数据一致性与智能合约动态漏洞的双重挑战。本文提出四维测试模型&#xff1a;一、AI赋能的异常行为检测系统动态预言机验证使用LSTM神经网络构建交易模式基线&#xff08;代码示…

作者头像 李华
网站建设 2026/1/18 16:39:42

疫情通报内容生成:Qwen3Guard-Gen-8B防止恐慌情绪渲染

Qwen3Guard-Gen-8B&#xff1a;让疫情通报既真实又稳妥&#xff0c;AI如何守住情绪防线 在一次突发公共卫生事件中&#xff0c;某地卫健委的AI助手自动生成了一条通报&#xff1a;“新增病例突破千例&#xff0c;医疗资源濒临崩溃&#xff01;”消息尚未发布&#xff0c;系统后…

作者头像 李华
网站建设 2026/1/17 4:24:42

UE5 C++(9):

&#xff08;47&#xff09; &#xff08;48&#xff09; 谢谢

作者头像 李华
网站建设 2026/1/17 11:33:58

告别高延迟:构建高效VSCode Agent HQ工作环境的6大核心配置

第一章&#xff1a;VSCode Agent HQ 性能优化的核心价值在现代软件开发中&#xff0c;编辑器性能直接影响开发者的工作效率与体验。VSCode Agent HQ 作为集成开发环境中的智能代理核心&#xff0c;其性能优化不仅提升了响应速度&#xff0c;还显著降低了资源占用&#xff0c;使…

作者头像 李华
网站建设 2026/1/10 6:35:25

Keil5安装教程通俗解释:五分钟搞懂关键步骤

五分钟搞懂 Keil5 安装&#xff1a;从零开始搭建嵌入式开发环境 你是不是刚接触STM32&#xff0c;打开电脑准备写第一行代码时&#xff0c;却被“Keil怎么装&#xff1f;”这个问题卡住了&#xff1f; 别急。虽然网上教程不少&#xff0c;但很多只是机械地告诉你“下一步、下…

作者头像 李华
网站建设 2026/1/18 13:31:42

为什么你的VSCode聊天功能越用越慢?,一文看懂资源占用真相

第一章&#xff1a;为什么你的VSCode聊天功能越用越慢&#xff1f;在使用 VSCode 的集成聊天功能&#xff08;如 GitHub Copilot Chat 或其他 AI 插件&#xff09;时&#xff0c;许多开发者反馈随着使用时间增长&#xff0c;响应速度明显变慢。这一现象通常并非网络问题&#x…

作者头像 李华