首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
网络编程
Manu
创建于2021-11-29
订阅专栏
网络编程相关知识学习
等 1 人订阅
共23篇文章
创建于2021-11-29
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
网络编程学习21--Reactor/Proactor
回调函数 编程可以分为系统编程和应用编程。系统编程可以看作是编写库,而应用编程是利用写好的库来编写具有某种功能的程序,即应用。库通常会留下一些接口,即API,供应用程序员使用。 当我们调用某些库函数时
网络编程学习20--阻塞I/O + 多线程模型
阻塞I/O + 多线程模型 由于进程的上下文切换代价较高,所以可以使用更轻量级的线程来代替进程。 操作系统中允许在单个进程内运行多个线程。线程由操作系统内核管理,每个线程都有自己的上下文,包括唯一可以
POSIX条件变量
条件变量 互斥锁可以用来同步线程对共享数据的访问,条件变量则是用于在线程之间同步共享数据的值。条件变量提供了一种线程间的通知机制:当某个共享数据达到某个值的时候,唤醒等待这个共享数据的线程。条件变量是
POSIX互斥锁
互斥锁 互斥锁(也称互斥量)可以用于保护关键代码段,以确保其独占式的访问。当进入关键代码段时,需要获得互斥锁并将其加锁,这等价于二进制信号量的P操作;当离开关键代码段时,需要对互斥锁解锁,以唤醒其他等
网络编程学习19--阻塞I/O + 多进程模型
阻塞I/O + 多进程模型 阻塞I/O + 进程模型是最简单的解决C10K问题的方法,它是通过为每个连接创建一个独立的进程(子进程)去服务的。 fork 函数 函数原型 一个进程拥有完整的地址空间、程
网络编程学习18--I/O多路复用(epoll)
和之前学过的两种多路复用方法 select、poll相比,epoll的性能最好。 epoll的用法 epoll通过监听注册的多个文件描述符,来进行I/O事件的分发处理。和poll不同的是,epoll不
网络编程学习17--非阻塞I/O
阻塞和非阻塞 当应用程序调用阻塞I/O完成某个操作时,应用程序会被挂起,等待内核完成操作。此时,内核所做的事情是将 CPU 时间切换给其他有需要的进程,网络应用程序在这种情况下就会得不到 CPU 时间
网络编程学习16--I/O多路复用(poll)
对于select函数,其所支持的文件描述符的个数是有限的,在Linux系统中,select的默认最大值为1024。 而另一种I/O复用技术,poll可以突破文件描述符的个数限制。 poll函数 pol
网络编程学习15--I/O多路复用(select)
I/O多路复用 在没有多路复用时,如果我们调用fgets等待标准输入,就没有办法在套接字有数据的时候读出数据;如果调用read等待套接字数据返回,就没有办法在标准输入有数据的情况下,读入数据。 而I/
网络编程学习14--增强程序健壮性
TCP中的"不可靠"场景 TCP的可靠性是指传输层TCP的可靠。 由前面的学习可知,发送端调用send函数之后,数据流存储在发送缓冲区中,由网络协议栈决定如何发送。当对应的数据发送给接收端时,接收端会
网络编程学习13--TCP数据流特性
对TCP数据流的理解 TCP是一种流式协议。 在发送端,当我们调用 send 函数完成数据“发送”以后,数据并没有被真正从网络上发送出去,只是从应用程序拷贝到了操作系统内核协议栈中,至于什么时候真正被
网络编程学习12--Address already in use问题(SO_REUSEADDR选项)
服务器端程序需要绑定一个本地地址和端口,然后监听在这个地址和端口上。但是当服务器端程序重启后,总是碰到“Address in use”的报错信息,导致服务器程序不能很快地重启。 当我们启动服务器程序,
网络编程学习11--“有连接”的UDP
对 UDP 使用 connect 我们可以对UDP套接字调用connect,不过相比于TCP调用connect会引起三次握手,从而建立TCP有效连接,UDP调用connect并不会引起和服务器端的网络
网络编程学习10--TCP动态数据传输
由前面所学的知识可知,在调用 write 或 send 等发送数据的接口后,并不意味着数据被真正发送到网络上,其实,这些数据只是从应用程序拷贝到了系统内核的套接字缓冲区中(发送缓冲区),等待协议栈的处
网络编程学习9--检测连接状态
场景:如果在一个消息系统中,服务器崩溃,但是客户端并没有收到连接中断FIN包(由于异常情况,该FIN包没能正常到达客户端),这样导致的结果就是,客户端一直维护着一个"过时的"连接,不再会收到服务器发来
网络编程学习7--TIME_WAIT
TIME_WAIT 发生的场景 TCP的四次挥手 TCP连接终止时,主机 1 先发送 FIN 报文,主机 2 进入 CLOSE_WAIT 状态,并发送一个 ACK 应答,同时,主机 2 通过 read
网络编程学习6--本地套接字
本地socket是IPC(Inter-Process Communication,进程间通信),也就是本地进程间通信的一种方式。除了本地socket以外,管道、共享消息队列也是进程间通信的常用方法。本
网络编程学习5--UDP编程
对于TCP连接,当双方的连接建立后,在双方对话时,一定知道对方是谁,这表示这种对话是有上下文的。 而UDP没有这样的上下文,它是一个不可靠的通信协议,没有重传和确认,没有有序控制,也没有拥塞控制。 U
网络编程学习4--收发数据
发送数据 三个常用函数,write、send和sendmsg 以上三个函数的使用场景不同: write:常见的文件写函数,把socketfd换成文件描述符,就是普通的文件写入。 send:可以指定选项
网络编程学习3--使用socket格式建立连接
服务端 创建socket domain 就是指 PF_INET、PF_INET6 以及 PF_LOCAL 等,表示什么样的套接字. type 可用的值是: SOCK_STREAM: 表示的是字节流,对
下一页