Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by struct sockInfo sockinfos
linux并发服务器 -- linux网络编程(七)
网络结构模式 C/S结构 - 客户机/服务器;采用两层结构,服务器负责数据的管理,客户机负责完成与用户的交互;C/S结构中,服务器 - 后台服务,客户机 - 前台功能; 优点 1. 充分发挥客户端PC处理能力,先在客户端处理再提交服务器,响应速度快; 2. 操作界面好看,满足个性化需求; 3. 安全性较高,面向固定用户群,程序更注重流程; 缺点 1. 需要安装专用的客户端软件; 2. 对客户端的操作系统有限制,不能跨平台; B/S结构 - 浏览器/服务器;将系统功能实现的核心部分集中于服务器,简化系统开发,维护; 优点 总体成体低,维护方便,分布性强,开发简单; 缺点 1. 通信开销大,系统和数据的安全性较低; 2. 无法实现个性化的功能要求; 3. 协议固定; 4. 响应速度明显降低; MAC地址、IP地址、端口 网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件,又称为网络透配器或网络接口卡NIC,其拥有 MAC 地址,属于 OS 模型的第 2层。 每个网卡都有一个被称为MAC地址的第一无二的48位串行号(以太网卡/无线网卡); 网卡的功能: 1. 数据封装与解封装 2. 链路管理 3.
【项目 计网7】4.20 多进程实现并发服务器 4.22 多线程实现并发服务器
4.20 多进程实现并发服务器 要实现TCP通信服务器处理并发的任务,使用多线程或者多进程来解决。 思路: 1、一个父进程,多个子进程 2、父进程负责等待并接受客户端的连接 3、子进程:完成通信,接受一个客户端连接,就创建一个子进程用于通信 server_process.c #include <stdio.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <signal.h> #include <wait.h> #include <errno.h> void recyleChild(int arg) { while(1) { int ret = waitpid(-1, NULL, WNOHANG); if(ret == -1) { break; }else if(ret == 0) { break; } else if(ret > 0){ printf("子进程 %d 被回收了\n", ret); } } } int main() {...
【Linux】C++项目实战-高并发服务器详析_高并发服务器开发_努力学习的小马的博客-CSDN博客
橙色 server_process.c文件内容如下: 注意第70行的if(errno == EINTR),如果没有这个if判断的话,当同时多个客户端链接进来,停掉一个客户端,然后再启动一个客户端,就会发现没法连接了,accept会报一个错误。因为一个客户端停掉,在服务器端就相当于一个子进程终止执行,会发出SIGCHLD信号,被信号捕捉函数所捕捉,而此时程序正停在accept处阻塞,等待下一个客户端的连接。当信号捕捉函数处理完再返回accpet时,就会报一个错误,该错误为EINTR。这个也可以去看accept函数的介绍,有说明(如下图)。所以这里要做一个处理,如果errno是EINTR的话,则略过该报错。 第101行strlen(recvBuf) + 1是很有必要的,strlen在计数的时候是结束符’\0’为止,但不包含结束符。+1之后写入文件描述符的字符串就会带上结束符。如果不带上结束符的话,在另一端通过文件描述符读出的时候,数据的最末尾很容易出现一个奇怪的符号。 #include <stdio.h> #include <arpa/inet.h> #include...
C++ web server服务器 开发
本文是牛客网Linux 高并发服务器开发视频教程的笔记 1.1 Linux与远程 使用ssh在widows中控制Linux系统,使用vscode控制代码 使用g++编译 1.1 静态库与动态库 静态库与动态库的制作、区别 1.2 makefile makefile文件操作就是指定所有源文件的编译顺序,因为一个正式的项目会有很多很多源文件,不可能一个个的手动g++,而且各种文件的编译可能还有先后关系,所有要有一个专门的东西来确定编译顺序和编译关系,这个命令就是make。makefile文件 1.3 GDB调试工具 编译时 -g 1.4 文件的io 标准c库io的实现是调用Linux本身的文件操作方式,这种涉及到内存与硬盘的交互的,在不同的平台都可以使用标准c库实现,但是c库回去调用不同平台对应的方法。c库对于文件操作是有缓冲区的存在的,对文件的操作会先对缓冲区操作,最后一下写进磁盘,因此一定要特别注意flush命令的使用 1.5 文件的创建与打开、读写...
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with struct sockInfo
Contact struct sockInfo, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack