当前位置:首页>Linux>笑不活了!Linux UDP编程,竟是“电脑间的快递小哥”

笑不活了!Linux UDP编程,竟是“电脑间的快递小哥”

  • 2026-04-16 20:46:36
笑不活了!Linux UDP编程,竟是“电脑间的快递小哥”

点击蓝字

关注我们

笑不活了!Linux UDP编程,竟是“电脑间的快递小哥”

新手必看|告别TCP的“繁文缛节”,通俗讲透无连接通信,马年轻松拿捏UDP✅

一、前言:谁懂啊!TCP编程太“墨迹”,UDP才是“急性子福音”

刚吃透TCP编程和并发服务器的宝子们,是不是被TCP的“规矩”搞烦了?创建套接字、绑定、监听、接受连接,一步都不能少,就像寄快递要先填单、称重、验货,流程繁琐到离谱;哪怕是并发服务器,也得小心翼翼处理连接、回收资源,稍微出错就报错,堪称“编程界的繁文缛节”。

就像你想给朋友送一份急件,TCP就像邮政快递,要上门取件、扫码登记、确认收件人、签字回执,全程慢悠悠,哪怕你急得跳脚,也得按流程来;而UDP,就是小区里的快递小哥,不用登记、不用确认,你把包裹往他手里一塞,说一句“送XX楼XX号”,他转身就走,快准狠,不管对方收没收到,先送了再说。

Linux UDP编程,就是电脑间的“快递服务”,没有TCP那么多弯弯绕绕,不用建立连接、不用确认消息、不用排序,发消息就像扔快递,简单直接、效率拉满,适合那些“追求速度、不纠结是否一定收到”的场景。

今天就用最接地气、最风趣的话,把Linux UDP编程讲透,不搞复杂底层原理,不堆晦涩术语,只讲“UDP是什么、和TCP有啥区别、怎么实现”,搭配快递小哥类比和注释拉满的实操代码,全程无多余内容,新手跟着学,马年轻松拿捏Linux UDP编程,再也不用被TCP的繁琐流程折磨!

二、先搞懂:UDP编程,本质就是“电脑间的快递服务”

2.1 核心定义:UDP = 不搞虚的“急性子通信协议”

先破除新手恐惧:UDP不是什么高深技术,本质就是一种“无连接、不可靠的通信协议”,全名叫用户数据报协议,相当于电脑间的“快递小哥”,核心就是“快、简单、不墨迹”,发消息时不用和对方建立连接,直接发送,不管对方收没收到、有没有乱序,发完就完事。

还是用“快递”的类比,新手不用死记硬背,一眼就能懂UDP和TCP的区别,看完再也不混淆:

1.  TCP:邮政快递,流程繁琐,要建立连接(填单登记)、确认收件(回执签字)、按顺序送达(按地址排序),哪怕路上耽误点时间,也要保证包裹准确送到,靠谱但墨迹;

2.  UDP:小区快递小哥,流程简单,不用建立连接(不用登记)、不用确认收件(不用签字)、不保证顺序(谁顺路先送谁),速度极快,但可能丢件、错序,追求效率不追求绝对靠谱。

补充一句:UDP不是“不靠谱”,而是“按需选择”,就像你送急件,宁愿快一点,哪怕有万分之一的丢件风险,也不想等慢悠悠的邮政;UDP也是一样,适合对速度要求高、能容忍少量丢包的场景,比如直播、语音通话、游戏联机——你玩游戏时,偶尔卡顿丢帧,就是UDP在“追求速度”的代价。

2.2 灵魂拷问:为什么非要学UDP编程?TCP不够用吗?

新手最头疼的问题:TCP那么靠谱,能保证消息不丢、不乱序,直接用TCP不就行了,为什么还要学UDP?其实不是TCP不够用,而是很多场景下,TCP的“靠谱”反而成了累赘,就像你送一份随手的小礼物,没必要走邮政,找个快递小哥随手送过去,省时又省力:

举个实操场景(新手能懂的简单例子):你写一个直播程序,需要实时推送画面和声音,要是用TCP,每发一帧画面都要等对方确认,一旦网络有点卡顿,就会卡顿、延迟,体验拉胯;而用UDP,直接连续发送画面帧,哪怕丢几帧,也不影响整体观看,速度始终在线;再比如你写一个游戏联机程序,玩家的操作指令要实时传递,用UDP才能保证操作不延迟,要是用TCP,可能你按了跳跃,过一秒才反应,游戏直接没法玩。

核心原因总结(新手记这3点就够):

1.  速度快:不用建立连接、不用确认消息,发消息直接“扔出去”,效率比TCP高很多,适合实时场景;

2.  流程简单:代码比TCP简洁,不用处理监听、接受连接,新手更容易上手,不用被繁琐流程折磨;

3.  适配特定场景:直播、语音通话、游戏联机、广播通知,这些场景都需要UDP的“快”,TCP根本替代不了。

小结:Linux UDP编程,就是“电脑间的急性子通信术”,没有TCP的繁文缛节,简单、快速、直接,学会它,你就能应对各种实时通信场景,不用再被TCP的“墨迹”束缚,编程效率直接翻倍。

三、新手必懂:UDP编程核心流程,马年一看就会

很多新手觉得“UDP编程和TCP一样难”,其实大错特错!UDP编程的流程,比TCP简单不止一个档次,没有监听、没有接受连接,核心就两步:“发送消息”和“接收消息”,就像快递小哥“送快递”和“收快递”,流程简单到离谱,新手记一遍就能记住。

重点说明:UDP是无连接协议,所以没有“服务器端”和“客户端”的严格区分,只有“发送方”和“接收方”,谁先启动、谁先绑定端口,谁就是接收方,另一方就是发送方;代码用Linux C语言编写,注释拉满,编译命令单独标注,新手直接抄,就能运行。

3.1 核心流程:没有弯弯绕绕,就两步搞定

不管是发送方还是接收方,UDP编程的核心流程都极其简单,没有TCP那么多步骤,新手记住这两句就行:

1.  接收方:创建套接字(打开快递柜)→ 绑定IP和端口(设置快递柜地址)→ 接收消息(取快递);

2.  发送方:创建套接字(打开快递柜)→ 填写接收方IP和端口(写快递地址)→ 发送消息(送快递)。

对比TCP的流程,UDP简直是“懒人福音”——不用监听、不用接受连接、不用处理连接断开,全程不用纠结“连接状态”,只要知道对方的IP和端口,就能直接发消息,就像你知道朋友的地址,就能直接把快递送过去,不用提前打电话确认。

补充一句:接收方必须先启动、先绑定端口,就像快递柜必须先打开,快递小哥才能把快递放进去;如果发送方先启动,发送消息时,接收方还没绑定端口,消息就会“丢失”,就像快递小哥去送快递,对方不在家,快递没法投递,只能作废。

3.2 关键区别:UDP和TCP核心差异,新手别再混淆

新手最容易犯的错:把UDP和TCP的流程搞混,用UDP的代码去写TCP,或者用TCP的思路去写UDP,结果报错连连;其实只要记住“快递vs邮政”的类比,再记住这4个核心差异,就能轻松区分,再也不混淆:

1.  连接方式:TCP是面向连接的,必须先建立连接(拨号→接听),才能发消息;UDP是无连接的,不用建立连接,直接发消息;

2.  可靠性:TCP可靠,能保证消息不丢、不乱序,对方收到消息会回复确认;UDP不可靠,不保证消息能收到,也不保证顺序;

3.  速度:TCP速度慢,因为要处理连接、确认消息,流程繁琐;UDP速度快,不用处理这些,直接发送;

4.  代码复杂度:TCP代码复杂,要处理监听、接受连接、连接断开;UDP代码简单,只有发送和接收,新手轻松上手。

记忆技巧:TCP=邮政(靠谱、墨迹),UDP=快递小哥(快速、简单),按需选择,不用强行追求“靠谱”,适合自己的才是最好的。

四、新手必备:UDP编程实操代码,马年直接抄作业

Linux UDP编程,代码比TCP简洁太多,核心就是“发送”和“接收”两个函数,新手不用自己琢磨,直接抄下面的代码,注释拉满,每一步都对应前面的流程,编译后就能运行,实现“发送方发消息、接收方收消息”,全程无难度,比TCP简单10倍。

重点说明:代码分为“接收方”和“发送方”两个文件,用Linux C语言编写,编译命令单独标注,新手直接复制代码、编译运行,就能看到效果;所有代码都适配新手,没有复杂逻辑,只保留核心功能,还标注了需要修改的地方(比如接收方IP)。

4.1 接收方代码(udp_recv.c):守在快递柜旁,等快递

接收方代码,严格按照“创建套接字→绑定IP和端口→接收消息”的流程编写,注释拉满,新手能看懂每一步的作用,直接抄就行,不用修改任何内容(除非想换端口):

```Plain Text

#include <stdio.h>

#include <unistd.h>

#include <string.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

int main() {

   int sock_fd;

   struct sockaddr_in recv_addr, send_addr;

   socklen_t send_addr_len = sizeof(send_addr);

   char buf[1024] = {0};

   // 1. 创建套接字(打开快递柜)

   // AF_INET:IPv4协议,SOCK_DGRAM:UDP协议,0:默认协议

   sock_fd = socket(AF_INET, SOCK_DGRAM, 0);

   if (sock_fd == -1) {

       printf("套接字创建失败,相当于快递柜打不开~\n");

       return 1;

   }

   // 2. 绑定IP和端口(设置快递柜地址,让发送方知道往哪送)

   recv_addr.sin_family = AF_INET; // IPv4协议

   recv_addr.sin_port = htons(8888); // 端口号8888(快递柜编号)

   recv_addr.sin_addr.s_addr = INADDR_ANY; // 绑定所有本机IP(任意地址都能往这送快递)

   if (bind(sock_fd, (struct sockaddr*)&recv_addr, sizeof(recv_addr)) == -1) {

       printf("绑定IP和端口失败,相当于快递柜地址设置错了~\n");

       close(sock_fd);

       return 1;

   }

   printf("接收方已启动,绑定8888端口,等待接收消息(就像守在快递柜旁等快递)...\n");

   // 3. 接收消息(取快递),循环接收,一直等消息

   while (1) {

       // 清空缓冲区,避免旧消息干扰

       memset(buf, 0, sizeof(buf));

       // 接收发送方的消息,同时获取发送方的IP和端口(知道谁送的快递)

       int recv_len = recvfrom(sock_fd, buf, sizeof(buf), 0,

                              (struct sockaddr*)&send_addr, &send_addr_len);

       if (recv_len == -1) {

           printf("接收消息失败,相当于没收到快递~\n");

           continue;

       }

       // 打印发送方消息和发送方IP、端口

       printf("收到来自(IP:%s,端口:%d)的消息:%s\n",

              inet_ntoa(send_addr.sin_addr), ntohs(send_addr.sin_port), buf);

   }

   // 关闭套接字(理论上不会执行到这里)

   close(sock_fd);

   return 0;

}

```

编译命令(新手必记):gcc udp_recv.c -o udp_recv(直接编译,不用加额外参数)

运行方法:终端敲 ./udp_recv,接收方就会启动,绑定8888端口,一直等待接收消息,就像守在快递柜旁,随时准备取快递。

4.2 发送方代码(udp_send.c):快递小哥,送快递

发送方代码,严格按照“创建套接字→填写接收方IP和端口→发送消息”的流程编写,注释拉满,新手只需要修改接收方的IP地址(和接收方的Linux IP一致),就能直接运行:

```Plain Text

#include <stdio.h>

#include <unistd.h>

#include <string.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

int main() {

   int sock_fd;

   struct sockaddr_in recv_addr;

   char buf[1024] = {0};

   // 1. 创建套接字(打开快递柜,准备送快递)

   sock_fd = socket(AF_INET, SOCK_DGRAM, 0);

   if (sock_fd == -1) {

       printf("套接字创建失败,相当于快递柜打不开,没法送快递~\n");

       return 1;

   }

   // 2. 填写接收方的IP和端口(写快递地址,知道往哪送)

   recv_addr.sin_family = AF_INET; // IPv4协议

   recv_addr.sin_port = htons(8888); // 接收方端口号(和接收方一致,都是8888)

   // 接收方IP地址,替换成接收方的Linux IP(用ip addr命令查看)

   recv_addr.sin_addr.s_addr = inet_addr("192.168.1.100");

   // 3. 发送消息(送快递),循环发送,直到输入exit退出

   while (1) {

       // 清空缓冲区

       memset(buf, 0, sizeof(buf));

       // 输入要发送的消息

       printf("发送方:");

       fgets(buf, sizeof(buf), stdin);

       // 去掉fgets自带的换行符

       buf[strlen(buf)-1] = '\0';

       // 如果输入exit,退出发送

       if (strcmp(buf, "exit") == 0) {

           printf("正在停止发送...\n");

           break;

       }

       // 发送消息给接收方(送快递)

       int send_len = sendto(sock_fd, buf, strlen(buf), 0,

                            (struct sockaddr*)&recv_addr, sizeof(recv_addr));

       if (send_len == -1) {

           printf("发送消息失败,相当于快递没送出去~\n");

           continue;

       }

       printf("消息已发送,等待接收方接收(快递已送出,坐等对方取件)...\n");

   }

   // 关闭套接字

   close(sock_fd);

   return 0;

}

```

编译命令(新手必记):gcc udp_send.c -o udp_send(直接编译,不用加额外参数)

运行方法:先启动接收方(./udp_recv),再打开一个新终端,敲 ./udp_send,修改接收方IP地址(替换成接收方的Linux IP),输入消息就能发送,接收方会实时显示消息,就像快递小哥送快递、接收方取快递一样简单。

小提醒:发送方代码中的接收方IP地址(192.168.1.100),一定要替换成接收方的Linux IP(用ip addr命令查看),不然消息会“送错地址”,接收方收不到;另外,发送方不用绑定端口,系统会自动分配一个随机端口,就像快递小哥不用固定编号,只要知道接收方地址就行。

五、避坑指南:新手写UDP编程,别再踩这些坑

5.1 陷阱1:先启动发送方,再启动接收方,导致消息丢失

新手最容易犯的错:先启动发送方,再启动接收方,发送消息后,接收方收不到,以为自己代码写错了,其实是接收方还没“打开快递柜”,发送方的消息就像快递小哥去送快递,对方不在家,快递没法投递,只能丢失。

避坑妙招:严格按顺序启动——先启动接收方(./udp_recv),看到“等待接收消息”的提示后,再启动发送方(./udp_send),这样发送方的消息才能被接收方正常接收。

5.2 陷阱2:发送方IP地址写错,导致消息送错地方

很多新手复制发送方代码后,不修改接收方IP地址,还是用默认的192.168.1.100,结果发送消息后,接收方收不到,其实是IP地址写错了,就像快递小哥送错地址,快递根本到不了接收方手里。

避坑妙招:先用ip addr命令,查看接收方的Linux IP地址,再把发送方代码中的inet_addr("192.168.1.100"),替换成接收方的IP地址,确保地址正确,消息才能送对地方。

5.3 陷阱3:混淆UDP和TCP的套接字类型,导致编译报错

新手写UDP代码时,经常把套接字类型写错,把SOCK_DGRAM(UDP)写成SOCK_STREAM(TCP),导致编译报错,或者运行后没法发送、接收消息,就像快递小哥拿错了快递柜钥匙,打不开柜子,没法送快递。

避坑妙招:牢记:UDP的套接字类型是SOCK_DGRAM,TCP的套接字类型是SOCK_STREAM,写UDP代码时,一定要确认socket函数的第二个参数是SOCK_DGRAM,不要写错。

5.4 陷阱4:接收方端口被占用,导致绑定失败

新手启动接收方时,经常报错“绑定失败”,和TCP、并发服务器一样,是8888端口被其他程序占用了,就像快递柜被别人占用了,你没法把快递放进去。

避坑妙招:用netstat -tuln或ss -tuln命令,查看8888端口是否被占用;如果被占用,要么关闭占用端口的程序,要么把接收方和发送方的端口号(htons(8888))改成其他未被占用的端口(比如8080),两者端口号要保持一致。

5.5 陷阱5:以为UDP能保证消息可靠,纠结“为什么收不到消息”

新手写UDP代码时,发送消息后,偶尔收不到,就以为是自己代码写错了,反复检查代码,其实不是代码的问题,而是UDP本身就是“不可靠协议”,偶尔丢包是正常的,就像快递小哥送快递,偶尔会丢件,不是小哥的问题,是快递服务的特性。

避坑妙招:接受UDP的“不可靠”,如果场景要求消息必须可靠(比如文件传输),就用TCP;如果场景追求速度(比如直播、游戏),就用UDP,不用纠结偶尔的丢包问题。

六、结尾:UDP编程不难学,马年轻松玩转无连接通信

看到这里,是不是觉得Linux UDP编程一点都不难?其实它就是“电脑间的快递服务”,没有TCP的繁文缛节,核心就是发送和接收消息,代码简单、流程简洁,只要记住“快递小哥”的类比,就能轻松理解,不用怕晦涩的术语和函数。

新手不用怕,刚开始不用追求复杂的UDP逻辑,先掌握“发送方发消息、接收方收消息”的简单通信,能成功运行代码、看到效果,就足够了。学会UDP编程,你就能应对直播、游戏、语音通话等实时场景,不用再被TCP的繁琐流程折磨,编程效率直接翻倍。

记住,UDP和TCP不是“谁好谁坏”,而是“按需选择”——靠谱选TCP,快速选UDP,两者结合,才能应对各种网络编程场景,成为真正的Linux网络编程高手。

2026丙午马年,愿你吃透Linux UDP编程,轻松玩转无连接通信,不踩坑、不懵圈,编写实时网络程序一马当先,早日实现“Linux网络编程自由”!

✨ 关注我,下期解锁UDP进阶(广播、组播),新手也能轻松拿捏Linux ✨

扫码关注我们

知识奇妙世界

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-17 08:05:53 HTTP/2.0 GET : https://f.mffb.com.cn/a/485419.html
  2. 运行时间 : 0.098093s [ 吞吐率:10.19req/s ] 内存消耗:4,618.07kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=50dbf83e1b50de74efdeaa21e8bba095
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000426s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000595s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000264s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000267s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000515s ]
  6. SELECT * FROM `set` [ RunTime:0.000201s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000522s ]
  8. SELECT * FROM `article` WHERE `id` = 485419 LIMIT 1 [ RunTime:0.000627s ]
  9. UPDATE `article` SET `lasttime` = 1776384353 WHERE `id` = 485419 [ RunTime:0.007119s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.002592s ]
  11. SELECT * FROM `article` WHERE `id` < 485419 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000497s ]
  12. SELECT * FROM `article` WHERE `id` > 485419 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000470s ]
  13. SELECT * FROM `article` WHERE `id` < 485419 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.008079s ]
  14. SELECT * FROM `article` WHERE `id` < 485419 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.007333s ]
  15. SELECT * FROM `article` WHERE `id` < 485419 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000779s ]
0.099722s