网络编程
文章平均质量分 72
这只是自学笔记,学习内容来自b站视频:https://www.bilibili.com/video/BV11Z4y157RY?
RichYoungZz
这个作者很懒,什么都没留下…
展开
-
网络编程模型
在使用多进程/多线程服务端框架的时候,如果每次有一个新的客户端连接,都重新去创建一个进程/线程来处理的话,对CPU和内存的开销是比较大的。于是乎,就有了I/O复用。1.I/O复用简介多进程/多线程并发模型:为每个socket分配一个线程/进程。I/O复用:采用单个进程/线程来管理多个socket。这就是他们区别所在。I/O复用有三种方案:select、poll、epoll,各有优缺点,适应不同场景,但是相对来说,epoll会更常用。在网络设备(交换机、路由器),网游后台、nginx、redis原创 2022-02-20 19:18:18 · 1107 阅读 · 1 评论 -
多线程基础(Linux)
原创 2022-02-13 02:10:21 · 321 阅读 · 0 评论 -
多进程框架(Linux)
1.fork()函数关于多进程,我们就需要了解一个fork()函数,它在头文件unistd.h中。当我们在一个程序中调用fork()函数的时候,这个进程就会创建出一个新的进程(我们称为子进程),当前这个程序就被称为父进程。并且,父进程使用fork(),还会返回子进程的进程号,而子进程中,返回值是0。例如这么一个程序,我们来分析一下#include<bits/stdc++.h>#include<unistd.h>using namespace std;int main()原创 2022-01-27 13:35:19 · 1848 阅读 · 0 评论 -
多进程有关程序(持续更新...)
本文是我在学习socket通信中自己写的一些程序和代码,之后还会持续更新。yzz_client.cpp#include"yzz_client.h"TcpClient::TcpClient(std::string ip,int port){ if((connect_fd = socket(AF_INET,SOCK_STREAM,0)) == 0) return; memset(&server_addr,0,sizeof(server_addr));原创 2022-01-26 13:07:19 · 445 阅读 · 0 评论 -
TCP报文分包和粘包
通过学习计网的基础知识,我们知道原创 2022-01-17 16:09:12 · 2497 阅读 · 0 评论 -
TCP三次握手与四次挥手
面试官,不要再问我三次握手和四次挥手这个连接讲解了TCP协议的三次握手和四次挥手,以及和socket编程的关系,讲的很详细也很好。仅用作自学。转载 2022-01-17 11:49:47 · 82 阅读 · 0 评论 -
网络编程库函数与结构体
这里会介绍网络编程相关的函数基本函数。1.socket函数int socket(int domain, int type, int protocol);向系统申请一个socket,得到一个文件描述符,用于通信。参数说明:1.domain:协议族,常用的有AF_INET、AF_INET6、AF_LOCAL(或称AF_UNIX,Unix域Socket)、AF_ROUTE等,决定socket地址类型。我们常用的是AF_INET,决定了要用ipv4地址(32位)与端口号(16位)的组合。2.typ原创 2022-01-17 11:44:45 · 1947 阅读 · 3 评论 -
网络编程基本概念
1.socket1.socket可以理解成插座,两个不同计算机中运行的程序,通过socket建立通道,在通道中进行数据传输来通信。2.socket隐藏了TCP/IP协议族的细节,我们只需要调用socket的函数就可以完成网络通信。3.socket提供基于TCP协议的流服务(stream)和基于UDP协议的数据报服务(datagram),流服务当下使用得最多,之后也只会学习这个。2.简单的socket通信流程PS:1.socket通信采用的是客户/服务端的通信模式。2.监听模式可以理解为是一种原创 2022-01-13 10:58:06 · 1290 阅读 · 2 评论