news 2026/5/30 17:51:02

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/5/28 21:16:51

零基础入门Keil编译环境搭建步骤

从零开始搭建Keil开发环境&#xff1a;避开99%新手都踩过的“c9511e”坑 你是不是也遇到过这种情况——刚装好Keil&#xff0c;信心满满地打开一个工程&#xff0c;点击“Build”&#xff0c;结果编译器弹出一条红色错误&#xff1a; error: c9511e: unable to determine the…

作者头像 李华
网站建设 2026/5/29 1:33:32

Qwen3Guard-Gen-8B开源镜像发布:支持119种语言的安全审核新标杆

Qwen3Guard-Gen-8B&#xff1a;用生成式理解重塑内容安全防线 在AI生成内容&#xff08;AIGC&#xff09;爆发式增长的今天&#xff0c;一个看似简单的问题正变得越来越棘手&#xff1a;我们如何确保大模型输出的内容既合规又安全&#xff1f;尤其是在全球用户混杂、语言文化差…

作者头像 李华
网站建设 2026/5/28 21:55:58

谷歌镜像搜索技巧:精准定位Qwen3Guard-Gen-8B技术资料

谷歌镜像搜索技巧&#xff1a;精准定位Qwen3Guard-Gen-8B技术资料 在生成式AI迅速渗透内容创作、客服系统和智能助手的今天&#xff0c;一个棘手的问题正不断浮现&#xff1a;如何确保大模型输出的内容既合规又安全&#xff1f;传统的关键词过滤和简单分类器&#xff0c;在面对…

作者头像 李华
网站建设 2026/5/28 17:50:43

未来AI会取代人类吗?

AI的发展速度令人惊叹&#xff0c;从写代码到画画&#xff0c;甚至能和你聊天到深夜。但“取代人类”这个命题&#xff0c;真的那么简单吗&#xff1f; AI擅长的是模式识别和高效执行。它能一天写出100篇报告&#xff0c;画出1000张插画&#xff0c;甚至模拟人类的情绪反应。但…

作者头像 李华
网站建设 2026/5/29 0:10:55

CGPO:完美融合—用评审混合机制重塑RLHF

强化学习人类反馈(Reinforcement learning from human feedback,RLHF)已成为微调大语言模型(LLM)的主流方法。然而,RLHF在多任务学习(MTL)中存在局限性,原因在于奖励操纵(reward hacking)问题以及极端的多目标优化(即多个甚至有时相互冲突的目标之间的权衡)带来的…

作者头像 李华