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 (就像买手机

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1123100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8个降AI率工具推荐!继续教育学员必看

8个降AI率工具推荐&#xff01;继续教育学员必看 AI降重工具&#xff1a;让论文更自然&#xff0c;让查重更轻松 在继续教育的学习过程中&#xff0c;论文写作是每位学员必须面对的挑战。随着AI技术的广泛应用&#xff0c;许多学生在使用AI辅助写作时&#xff0c;发现论文中存在…

Qwen3Guard-Gen-8B模型适合哪些行业?教育、社交、电商全适配

Qwen3Guard-Gen-8B&#xff1a;如何为高风险场景构建可信的AI安全防线&#xff1f; 在教育App里&#xff0c;一个AI助教正回答学生关于历史事件的问题&#xff1b;社交平台的私信中&#xff0c;用户悄悄传递着带有隐喻意味的消息&#xff1b;电商系统自动生成的商品文案宣称“全…

吐血推荐8个AI论文写作软件,MBA论文写作必备!

吐血推荐8个AI论文写作软件&#xff0c;MBA论文写作必备&#xff01; AI 工具如何助力 MBA 论文写作&#xff1f; 在当前的学术环境中&#xff0c;MBA 学生和研究者面临着越来越高的论文写作要求。无论是案例分析、商业计划书还是实证研究&#xff0c;都需要严谨的逻辑结构与高…

Socket 编程进阶:为什么必须搞懂“字节序”与“大小端”?

各类资料学习下载合集 链接:https://pan.quark.cn/s/770d9387db5f 一、 套接字(Socket):网络的插头与插座 Socket 的原意是“插座”。在网络通信中,它的角色分工非常明确,就像家用电器插电一样: 服务器端 (Server):扮演插座的角色。它被动等待,必须绑定一个固定的 I…

GitHub Pages搭建Qwen3Guard-Gen-8B项目静态官网展示

GitHub Pages 搭建 Qwen3Guard-Gen-8B 项目静态官网展示 在生成式 AI 爆发式增长的今天&#xff0c;大模型驱动的内容创作、智能客服和虚拟助手正以前所未有的速度渗透进我们的数字生活。但与此同时&#xff0c;不当言论、虚假信息、敏感内容等安全风险也如影随形。传统基于关键…

工业照明自动控制系统建模:Proteus零基础指南

从零开始构建工业照明自动控制系统&#xff1a;Proteus实战入门你有没有遇到过这样的场景&#xff1f;工厂车间里明明没人&#xff0c;灯却一直亮着&#xff1b;或者仓库角落光线昏暗&#xff0c;工人来回走动时还得手动开灯——既浪费电&#xff0c;又影响安全。其实&#xff…

增强型MOSFET和耗尽型的区别

MOSFET根据其工作特性主要分为两大类&#xff1a;增强型MOSFET和耗尽型MOSFET。这两种MOSFET在结构、工作原理和应用场景上有着显著的区别。本文将详细探讨增强型MOS和耗尽型MOS的特点&#xff0c;并分析它们在不同电子设备中的应用。增强型MOSFET和耗尽型MOSFET的核心区别在于…

智慧城市实战:基于AI的城市道路拥堵解决方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个智慧城市道路管理系统&#xff0c;功能包括&#xff1a;1. 实时交通数据采集接口 2. 基于机器学习的拥堵预测模型 3. 动态信号灯控制算法 4. 应急车辆优先通行逻辑 5. 可视…

企业级HCI部署陷阱频现,你真的懂MCP Azure Stack HCI吗?

第一章&#xff1a;MCP Azure Stack HCI 部署的认知误区在部署 MCP&#xff08;Microsoft Cloud Platform&#xff09;Azure Stack HCI 时&#xff0c;许多管理员基于公有云 Azure 的使用经验做出假设&#xff0c;导致架构设计与实际需求脱节。这种混淆不仅影响系统性能&#x…

酒精饮品消费提醒:Qwen3Guard-Gen-8B注明未成年人禁用

酒精饮品消费提醒&#xff1a;Qwen3Guard-Gen-8B注明未成年人禁用 在社交平台、智能助手和内容生成系统日益普及的今天&#xff0c;一个看似简单的用户提问——“我16岁了&#xff0c;喝点啤酒应该没问题吧&#xff1f;”——可能正悄然触发一场AI伦理与技术安全的深层博弈。这…

VS Code + CMake:告别手动配置,提升10倍开发效率

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个VS Code项目&#xff0c;使用CMake管理依赖库。项目需要引用一个外部库&#xff08;如Boost或OpenCV&#xff09;&#xff0c;并编写一个简单的示例程序使用该库的功能。请…

基于STM32CubeMX的CAN总线设置:新手教程

手把手教你用STM32CubeMX配置CAN总线&#xff1a;从零开始的实战指南你有没有遇到过这样的情况&#xff1f;项目急着要通信功能&#xff0c;结果一上来就卡在CAN波特率算不对、收不到数据、过滤器莫名其妙不生效……明明硬件都接好了&#xff0c;示波器也看到信号了&#xff0c…

为什么你的VSCode AI助手反应迟钝?深度剖析会话瓶颈根源

第一章&#xff1a;VSCode智能体会话优化的必要性在现代软件开发中&#xff0c;开发者频繁依赖集成开发环境&#xff08;IDE&#xff09;进行代码编写、调试与协作。VSCode凭借其轻量级架构和丰富的插件生态&#xff0c;已成为主流选择之一。然而&#xff0c;随着项目复杂度提升…

VSCode智能感知总出错?5分钟定位并修复会话异常问题

第一章&#xff1a;VSCode智能体会话异常问题概述 在使用 Visual Studio Code&#xff08;VSCode&#xff09;进行开发时&#xff0c;部分用户反馈其智能体会话功能频繁出现异常&#xff0c;表现为代码补全延迟、建议列表不完整或完全失效。此类问题不仅影响开发效率&#xff0…

不同磁芯电感的优缺点

了解不同磁芯电感的优缺点&#xff0c;能帮助你在电路设计中做出合适的选择。磁芯类型优点缺点铁氧体电阻率高&#xff0c;涡流损耗小&#xff0c;高频特性好&#xff0c;成本低&#xff0c;良好的温度稳定性饱和磁通密度较低&#xff0c;大电流下易饱和&#xff0c;居里温度点…

制定有效制造运营管理策略的 10 个步骤

要克服挑战、推动全公司制造运营向以客户为导向转型&#xff0c;首先需要清晰定义成功的标准。 精准、实时的生产可视化不仅能提高产品质量、订单准确率与客户满意度&#xff0c;还能在工厂层面降低制造成本。让所有生产基地的运营聚焦于统一目标&#xff0c;可提高毛利率、降低…

MobileNetV3实战:从零构建移动端目标检测应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 基于MobileNetV3和SSD&#xff08;Single Shot MultiBox Detector&#xff09;框架&#xff0c;开发一个移动端目标检测应用。提供数据集预处理代码、模型训练脚本&#xff08;使用…

基于Multisim14.3的PCB协同设计实战案例

从仿真到布板&#xff1a;用 Multisim14.3 打通音频放大器设计全流程你有没有经历过这样的场景&#xff1f;辛辛苦苦画完原理图、打样PCB、焊好板子&#xff0c;结果一通电——输出全是噪声&#xff0c;增益不对&#xff0c;甚至芯片发热冒烟。回头再改版&#xff1f;时间耽误了…

SSD1306中文手册I2C通信常见问题系统学习

一块OLED屏的“黑话”&#xff1a;从SSD1306手册看懂I2C通信那些坑你有没有遇到过这样的场景&#xff1f;接好线&#xff0c;烧录代码&#xff0c;打开电源——屏幕要么全黑、要么花屏乱码&#xff0c;甚至在IC扫描里根本找不到设备。而你明明用的是最常见的SSD1306 OLED模块&a…

【MCP Azure Stack HCI 部署终极指南】:掌握混合云架构核心技能的5大关键步骤

第一章&#xff1a;MCP Azure Stack HCI 部署概述Azure Stack HCI 是微软推出的超融合基础设施解决方案&#xff0c;旨在将本地数据中心与云原生能力深度融合。该平台基于 Windows Server 操作系统内核&#xff0c;集成软件定义计算、存储和网络功能&#xff0c;并通过 Azure A…