cqu_shuai
码龄9年
关注
提问 私信
  • 博客:767,695
    767,695
    总访问量
  • 396
    原创
  • 724,654
    排名
  • 1,061
    粉丝
  • 11
    铁粉

个人简介:实事求是,不自以为是

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:重庆市
  • 加入CSDN时间: 2015-07-26
博客简介:

beilizhang的博客

查看详细资料
个人成就
  • 获得889次点赞
  • 内容获得348次评论
  • 获得3,762次收藏
  • 代码片获得22,250次分享
创作历程
  • 10篇
    2022年
  • 336篇
    2021年
  • 50篇
    2020年
成就勋章
TA的专栏
  • 数据分析
    31篇
  • 计算机网络
    56篇
  • C++
    76篇
  • 数据结构与算法
    23篇
  • Spark
    3篇
  • 杂文
    13篇
  • 操作系统
    3篇
  • leetcode重点250题
    111篇
  • PyTorch
    27篇
  • DGL
    17篇
  • 推荐系统的公平性
    6篇
  • NLP
    8篇
  • 机器学习
    6篇
  • 图
    6篇
  • 元路径
    3篇
  • 知识图谱
    5篇
  • 新闻推荐
    1篇
兴趣领域 设置
  • 人工智能
    机器学习深度学习神经网络pytorch
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

网络编程——实现HTTP服务器端

参考《TCP/IP网络编程》 尹圣雨Web服务器端概述Web服务器端是,基于HTTP(Hypertext Transfer Protocol)协议,将网页对应文件传输给客户端的服务器端。Hypertext(超文本)是可以根据客户端请求而跳转的结构化信息。HTTP协议是以超文本传输为目的而设计的应用层协议,同样基于TCP/IP实现。浏览器属于基于套接字的客户端,因为连接到任意Web服务器端时,浏览器内部也会创建套接字。只是浏览器将服务器端传输的HTML格式的超文本解析为可读性较强的视图。H
原创
发布博客 2022.05.06 ·
2707 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

网络编程——IOCP

参考《TCP/IP网络编程》 尹圣雨IOCPIOCP(Input Output Completion Port,输入输出完成端口)是性能最好的Windows平台I/O模型。Linux有epoll,BSD有kqueue。从重叠I/O理解IOCP实现非阻塞模式的套接字在Windows中通过ioctlsocket函数将套接字属性改为非阻塞式,其调用的含义是,将hLisnSock句柄引用的套接字I/O模式(FIONBIO)改为变量mode中指定的形式SOCKET hLisnSock;int mo
原创
发布博客 2022.05.05 ·
2222 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏

网络编程——重叠I/O模型

参考《TCP/IP网络编程》 尹圣雨重叠I/O模型理解重叠I/O模型同一线程内部向多个目标传输(或从多个目标接收)数据引起的I/O重叠现象称为“重叠I/O”。为了完成这项任务,调用的I/O函数应立即返回,因此前提条件是异步I/O。而且,为了完成异步I/O,调用的I/O函数应以非阻塞模式工作Windows中重叠I/O的重点并非I/O本身,而是如何确认I/O完成时的状态创建重叠I/O套接字#include <winsock2.h>SOCKET WSASocket(int af,
原创
发布博客 2022.05.05 ·
3029 阅读 ·
4 点赞 ·
1 评论 ·
16 收藏

网络编程——异步通知I/O模型

参考《TCP/IP网络编程》 尹圣雨异步通知I/O模型异步I/O同步I/O的缺点:进行I/O的过程中函数无法返回,所以不能执行其他任务异步I/O是指I/O函数的返回时刻与数据收发的完成时刻不一致,是为了克服同步I/O的缺点而设计的模型。无论数据是否完成交互都返回函数,这就意味着可以执行其他任务,能够更有效地使用CPU理解异步通知I/O模型异步通知I/O模型,意为“通知I/O”以异步方式工作通知I/O指发生了I/O相关的特定情况,即通知输入缓冲收到数据并需要读取,以及输出缓冲为空可以发送数
原创
发布博客 2022.05.04 ·
696 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

网络编程——Windows中的线程同步

参考《TCP/IP网络编程》 尹圣雨Windows中的线程同步用户模式和内核模式用户模式:运行应用程序的基本模式,禁止访问物理设备,而且会限制访问的内存区域内核模式:操作系统运行时的模式,不仅不会限制访问的内存区域,而且访问的硬件设备也不会受限内核是操作系统的核心模块,可以简单定义为:用户模式:应用程序的运行模式内核模式:操作系统的运行模式在应用程序运行过程中,Windows操作系统会在用户模式和内核模式之间切换。例如,在Windows中创建线程,虽然创建线程的请求是由应用程序的函
原创
发布博客 2022.05.04 ·
843 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

网络编程——Windows中的线程

参考《TCP/IP网络编程》 尹圣雨Windows中的线程内核对象操作系统创建的资源,如进程、线程、文件、信号量、互斥量等。这些资源的共同点是,都是由Windows操作系统创建并管理的的资源。不同资源的管理方式有差异,操作系统为了以记录相关信息的方式管理各种资源,在其内部生成数据块。由于每种资源需要维护的信息不同,所以每种资源拥有的数据块格式也有差异。这类数据块称为“内核对象”。内核对象的所有者是内核(操作系统)。内核对象的创建、管理、销毁时机的决定等工作均由操作系统完成线程调用main函
原创
发布博客 2022.05.02 ·
1136 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

网络编程——多线程服务器端的实现

参考《TCP/IP网络编程》 尹圣雨多线程服务器端的实现线程和线程创建进程(复制)的工作本身会给操作系统带来相当沉重的负担。而且,每个进程具有独立的内存空间,所以进程间通信的实现难度也会随之提高。多进程模型的缺点:创建进程的过程会带来一定的开销为了完成进程间数据交换,需要特殊的IPC(Inter-Process Communication)技术频繁的上下文切换(Context Switching)是创建进程时最大的开销为了保持多进程的优点,并一定程度上克服其缺点,引入了线程。线程的
原创
发布博客 2022.04.28 ·
835 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

网络编程——epoll

参考《TCP/IP网络编程》 尹圣雨epollepoll也是Linux下实现I/O复用的一种方法,其性能优于select。基于select的I/O复用服务器的设计缺陷调用select函数后,针对所有文件描述符的循环语句。调用select函数后,需要观察作为监视对象的fd_set变量的变化,找出变化的文件描述符,因此需要针对所有监视对象的循环语句。作为fd_set变量会发生变化,调用select函数前需要复制并保存原有信息,并在每次调用select函数时传递新的监视对象。其中,第
原创
发布博客 2022.04.16 ·
4184 阅读 ·
9 点赞 ·
0 评论 ·
79 收藏

网络编程——分离I/O流

参考《TCP/IP网络编程》 尹圣雨分离I/O流两种I/O流分离第一种是TCP I/O过程分离。这种方法通过调用fork函数复制出1个文件描述符,以区分输入和输出中使用的文件描述符。虽然文件描述符本身不会根据输入和输出进行区分,但分开了2个文件描述符的用途,因此也属于流的分离。第二种是使用标准I/O函数时,通过2次fdopen函数的调用,创建读模式FILE指针和写模式FILE指针,分离了输入工具和输出工具,也可以视为流的分离。分离流的好处第一种分离流的方式的好处:通过分开输入过程(代码
原创
发布博客 2022.03.27 ·
3616 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

网络编程——标准I/O函数

参考《TCP/IP网络编程》 尹圣雨标准I/O函数除了默认数据通信手段read和write函数及各种系统I/O函数,还可以使用C语言中的标准I/O函数标准I/O函数的优点(1)标准I/O函数具有良好的移植性为了支持所有操作系统(编译器),标准函数都是按照ANSI C标准定义的,具有良好的移植性(2)标准I/O函数可以利用缓冲提高性能使用标准I/O函数会得到额外的缓冲支持。创建套接字时,操作系统将生成用于I/O的缓冲,此缓冲在执行TCP协议时发挥着非常重要的作用。若使用标准I/O函数,将得
原创
发布博客 2022.03.27 ·
801 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

网络编程——多播与广播

参考《TCP/IP网络编程》 尹圣雨多播与广播多播多播(Multicast)方式的数据传输是基于UDP完成的。与UDP服务器端/客户端的实现方式区别在于,UDP数据传输以单一目标进行,而多播数据同时传递传递到加入(注册)特定组的大量主机MBone(Multicast Backbone,多播主干网)多播是基于MBone这个虚拟网络工作的。虚拟网络可以理解为通过网络中的特殊协议工作的软件概念上的网络。即MBone并非可以触及的物理网络。它是以物理网络为基础,通过软件方法实现的多播通信必备虚拟网络
原创
发布博客 2021.11.11 ·
2478 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

网络编程——多种I/O函数

参考《TCP/IP网络编程》 尹圣雨多种I/O函数send和recv函数Linux中的send和recv(1)send#include <sys/socket.h>ssize_t send(int sockfd, const void* buf, size_t nbytes, int flags);成功时返回发送的字节数,失败时返回-1sockfd:表示与数据传输对象的连接的套接字文件描述符buf:保存待传输数据的缓冲地址值nbytes:待传输的字节数flags
原创
发布博客 2021.11.05 ·
377 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

网络编程——I/O复用

参考《TCP/IP网络编程》 尹圣雨I/O复用多进程服务器端的缺点多进程服务器端,只要有客户端连接请求就会创建新进程。但创建进程时需要付出极大代价。这需要大量的运算和内存空间,由于每个进程都具有独立的内存空间,所以相互间的数据交换也要求采用相对复杂的方法select函数使用select函数时可以将多个文件描述符集中到一起统一监视(监视项称为事件):是否存在套接字接收数据?无需阻塞传输数据的套接字有哪些?哪些套接字发生了异常?select函数的调用方法:(1)步骤一:设置文件
原创
发布博客 2021.11.03 ·
293 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

网络编程——进程间通信

参考《TCP/IP网络编程》 尹圣雨进程间通信进程间通信(Inter Process Communication)意味着两个不同进程间可以交换数据,为了完成这一点,操作系统中应提供两个进程可以同时访问的内存空间通过管道实现进程间通信为了完成进程间通信,需要创建管道。管道并非属于进程的资源,而是和套接字一样,属于操作系统(即不是fork函数的复制对象)。所以,两个进程通过操作系统提供的内存空间进行通信#include <unistd.h>int pipe(int filedes
原创
发布博客 2021.11.01 ·
544 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

网络编程——多进程服务器端

参考《TCP/IP网络编程》多进程服务器端具有代表性的并发服务器端实现模型和方法:多进程服务器:通过创建多个进程提供服务多路复用服务器:通过捆绑并同一管理I/O对象提供服务多线程服务器:通过生成与客户端等量的线程提供服务多进程服务器不适合在Windows平台下进程进程的定义:占用内存空间的正在运行的程序。进程ID所有进程都会从操作系统分配到ID。此ID称为进程ID,其值为大于2的整数。1要分配给操作系统启动后的(用于协助操作系统)首个进程,因此用户进程无法得到ID值1fork
原创
发布博客 2021.11.01 ·
770 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

网络编程——套接字的多种可选项

参考《TCP/IP网络编程》 尹圣雨套接字多种可选项上表中列出了一部分套接字可选项。IPPROTO_IP层可选项是IP协议相关事项,IPPROTO_TCP层可选项是TCP协议相关事项,SOL_SOCKET层是套接字相关的通用可选项对可选项进行读取(Get)#include <sys/socket.h>int getsockopt(int sock, int level, int optname, void* optval, socklen_t* optlen);成功时返回
原创
发布博客 2021.10.28 ·
1365 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

网络编程——域名及网络地址

参考《TCP/IP网络编程》 尹圣雨域名及网络地址域名系统DNS是对IP地址和域名进行相互转换的系统,其核心是DNS服务器域名提供网络服务的服务器端是IP地址区分的,将容易记、易表述的域名分配并取代IP地址DNS服务器域名是赋予服务器的虚拟地址,域名服务器将虚拟地址转化为实际地址。所有计算机中都记录着默认DNS服务器地址计算机内置的默认DNS服务器并不知道网络上所有域名的IP地址信息。若该DNS服务器无法解析,则会询问其他DNS服务器,并提供给用户(https://blog.csdn.
原创
发布博客 2021.10.27 ·
298 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

网络编程——TCP的半关闭

参考《TCP/IP网络编程》 尹圣雨TCP的半关闭一旦两台主机间建立了套接字连接,每个主机就会拥有单独的输入流和输出流。其中一个主机的输入流与另一主机的输出流相连,而输出流则与另一主机的输入流相连Linux的close函数和Windows的closesocket函数会同时断开两个流。即主机无法传输数据,也无法接收数据。导致另一台主机正在发送的数据无法再接收了。因此,我们需要半关闭状态,只关闭其中的一个流假设服务器端想半关闭自己的输出流,一方面需要让客户端知道数据已经传输完毕,另一方面要保留输入
原创
发布博客 2021.10.26 ·
1445 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++入门——实现“火柴人跑酷”游戏

参考《C和C++游戏趣味编程》 童晶火柴人跑酷游戏的思路是,玩家通过键盘控制火柴人的奔跑和跳跃,躲避蝙蝠到达终点。游戏地图随机生成,随着关卡数增加,游戏难度越来越大定义Player类class Player{public: IMAGE im_show; // 当前时刻要显示的图像 float x_left, y_bottom; // 左下角位置 float vx, vy;
原创
发布博客 2021.10.23 ·
14055 阅读 ·
37 点赞 ·
16 评论 ·
281 收藏

C++入门——实现“祖玛”游戏

参考《C和C++游戏趣味编程》 童晶祖玛游戏游戏的思路是,各种颜色的小球沿着轨道移动,玩家必须阻止小球进入轨道终点的城堡。玩家移动鼠标控制炮台旋转,按下鼠标右键更换小球颜色,点击鼠标左键发射小球。发射的小球进入轨道,如果周围有连续3个相同颜色的小球即可消除顶点类游戏中小球会沿着固定的轨迹移动,而轨迹可由一些离散的顶点组成,定义顶点类:class Point{public: float x, y; Point() { } Point(float ix, float iy)
原创
发布博客 2021.10.22 ·
4480 阅读 ·
11 点赞 ·
3 评论 ·
66 收藏
加载更多