网络编程
文章平均质量分 81
分享网络编程领域优质内容文章
干吃咖啡豆
内容创作者,关注人工智能、音视频流媒体、分布式系统、网络编程领域
展开
-
【操作系统】Linux编程 - 多线程的创建和使用 II (临界区 、互斥量、信号量的使用)
本文共计4505字,预计阅读时间8分钟原创 2023-07-05 00:37:15 · 579 阅读 · 0 评论 -
【操作系统】Linux编程 - 多线程的创建和使用
本文共计2820字,预计阅读时间6分钟原创 2023-07-03 23:44:02 · 456 阅读 · 0 评论 -
【TCP/IP】利用I/O复用技术实现并发服务器 - epoll
在需要频繁调用select函数的场景下,select函数要求必须向其传递监视对象(套接字),那么这样时间、空间都会产生巨大耗费,epoll函数可以更好地解决这类问题原创 2023-07-01 20:08:34 · 410 阅读 · 0 评论 -
【TCP/IP】广播 - 定义、原理及编程实现
本文共计2974字,预计阅读时间4分钟原创 2023-06-26 00:06:52 · 4104 阅读 · 0 评论 -
【TCP/IP】多播 - 定义、原理及编程实现 (TTL、多播组、多播消息)
多播是一种介于单播和广播通信之间的技术方式,可以将发送者所需要发送的数据包分别发送给分散在不同子网中的一组接收者。原创 2023-06-24 22:21:46 · 4314 阅读 · 1 评论 -
【TCP/IP】利用I/O复用技术实现并发服务器 - select函数
由服务器创建多个进程来实现并发的做法有时会带来一些问题,比如:内存上的开销、CPU的大量占用等,这些因素会消耗掉服务器端有限的计算资源、进而影响程序之间的执行效率。那么,有没有方法可以在不创建额外进程的条件下实现并发呢?当然有,那就是I/O复用技术。原创 2023-06-15 01:25:09 · 1149 阅读 · 0 评论 -
【杂谈】HTTP和RPC的区别
RPC(即Remote Procedure Call,远程过程调用)和HTTP(HyperText Transfer Protocol,超文本传输协议),两者前者是一种方法,后者则是一种协议。两者都常用于实现服务,在这个层面最本质的区别是RPC服务主要工作在TCP协议之上(也可以在HTTP协议),而HTTP服务工作在HTTP协议之上。转载 2023-06-13 13:17:04 · 109 阅读 · 0 评论 -
【TCP/IP】多进程服务器的实现(进阶) - 用I/O分割优化回声客户端
之前实现的回声客户端按照先向服务器端发送数据,直到服务器端收到回声数据后,再传输下一批数据。很大程度会影响端与端之间的数据交换效率(存在一个等待周期)。那么有什么办法可以解决这个问题呢?原创 2023-06-12 23:27:19 · 89 阅读 · 0 评论 -
【TCP/IP】多进程服务器的实现(进阶) - 多进程服务器模型及代码实现
经过前面的铺垫,我们已经具备实现并发服务器的基础了,接下来让我们尝试将之前的单任务回声服务器改装成多任务并发模式原创 2023-06-12 21:32:30 · 2749 阅读 · 1 评论 -
【TCP/IP】多进程服务器的实现(进阶) - 信号处理及signal、sigaction函数
信号这个概念大家应该不陌生,诸如汽车的鸣笛、闹钟的响铃等,这些都是信号,用以告诉人们某件事情的发生。而在编程中,同样有这个概念。我们常用信号来对接收到的某些数据或者指令做出与之对应的响应处理。原创 2023-06-11 00:48:25 · 1130 阅读 · 1 评论 -
【TCP/IP】多进程服务器的实现(进阶) - 僵尸进程及wait、waitpid函数
进程管理在网络编程中十分重要,如果未处理好,将会导致出现“僵尸进程”,进而影响服务器端对进程的管控。原创 2023-06-09 02:21:14 · 699 阅读 · 0 评论 -
【TCP/IP】多进程服务器的实现(进阶) - 进程的概念及fork函数
进程(Process)是计算机中程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。原创 2023-06-08 21:58:15 · 889 阅读 · 0 评论 -
【TCP/IP】IP地址与域名之间的转换 - gethostbyname 和 gethostbyaddr函数
域名系统是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网原创 2023-06-07 00:54:29 · 2921 阅读 · 1 评论 -
【TCP/IP】基于UDP的服务器端/客户端实现 III - UDP传输特性、连接与未连接UDP套接字的转化
TCP传输的数据不存在数据边界,其表明的意义是“数据传输过程中调用的I/O函数次数对整个流程没有影响(调用多少次对结果不会产生影响)”。那么,在UDP中又是如何呢?原创 2023-06-05 00:23:15 · 263 阅读 · 0 评论 -
【TCP/IP】基于UDP的服务器端/客户端实现 II - 实践与实现
对于UDP程序而言,若调用sendto函数时发现尚未分配地址信息,那么在首次调用sendto函数时会给相应的套接字自动分配IP和端口,并且此时分配的地址一直保留到程序结束为止。Q: TCP客户端套接字在调用connect函数时会自动分配IP地址和端口号,那么UDP的客户端是在何时分配IP和端口号的呢?原创 2023-06-02 13:30:56 · 271 阅读 · 0 评论 -
【TCP/IP】基于UDP的服务器端/客户端实现 I - 特点、应用场景、I/O函数
UDP在结构上比TCP更简洁,同时UDP不会发送类似ACK的应答消息,也不会像SEQ那样给数据包分配序号,因此UDP的性能有时会比TCP高出很多,但随之而来的是UDP的可靠性降低(不及TCP)。原创 2023-06-01 22:54:36 · 377 阅读 · 0 评论 -
【TCP/IP】详解TCP连接的“三次握手”与“四次挥手” - 下
对于"三次握手"我们耳熟能详,因为其相对简单。但是,我们却不常听见“四次挥手”,就算听过也未必能详细地说明白它的具体过程。转载 2023-06-01 00:34:17 · 266 阅读 · 0 评论 -
【TCP/IP】详解TCP连接的“三次握手”与“四次挥手” - 上
详解TCP连接的“三次握手”与“四次挥手”转载 2023-06-01 00:32:22 · 109 阅读 · 0 评论 -
【TCP/IP】简易代数计算服务器/客户端的实现
通过客户端发出欲计算的数据,在服务器端计算完成后返回给客户端,最后结果在客户端接收到后输出出来。原创 2023-05-31 01:51:07 · 56 阅读 · 0 评论 -
【TCP/IP】基于TCP的服务器端/客户端 III - 对于回声客户端缺陷的解决
基于TCP的服务器端/客户端 III - 对于回声客户端缺陷的解决原创 2023-05-29 23:59:15 · 161 阅读 · 0 评论 -
【TCP/IP】基于TCP的服务器端/客户端 II - 迭代服务器/客户端的概念与实现
回声服务器/客户端是指服务器端将客户端传输的字符串数据按照原本格式内容回传至客户端,类似于在山谷中的回声效应。原创 2023-05-28 19:36:06 · 355 阅读 · 0 评论 -
【TCP/IP】基于TCP的服务器端/客户端 I - 原理及初步实现(C++)
TCP服务器端/客户端两者间并非相互独立,他们的总体流程可以概述为:服务器端创建套接字后连续调用bind,listen函数并进入等待状态,客户端通过调用connect函数发起连接请求。与服务器端相比,客户端的设计重点在于“请求连接”,即在创建客户端套接字后向服务器端发起的连接请求。需强调的是,套接字是自动创建的,并自动与发起连接请求的客户端建立连接。原创 2023-05-27 17:23:39 · 1492 阅读 · 0 评论 -
【TCP/IP】浅析TCP/IP协议栈及每层含义
根据数据传输方式的不同,基于网络协议的套接字一般分TCP套接字和UDP套接字原创 2023-05-27 01:44:03 · 1006 阅读 · 0 评论 -
【TCP/IP】地址族与数据序列 III - 字符串网络地址与网络字节序的互转
字符串网络地址与网络字节序的互转原创 2023-05-22 00:17:45 · 827 阅读 · 0 评论 -
【TCP/IP】地址族与数据序列 II - 网络字节序与地址变换
网络字节序与地址变换原创 2023-05-21 22:41:28 · 292 阅读 · 0 评论 -
【TCP/IP】地址族与数据序列 I - 套接字中的IP地址和端口号
IP是Internet Protocol(网络协议)的简写,是为收发网络数据而分配给计算机的值。端口号并非赋予计算机的值,而是为区分程序中创建的套接字而分配给套接字的序号。原创 2023-05-21 01:46:11 · 212 阅读 · 0 评论 -
【杂谈】用Winsock编写服务端和客户端 (C++)
用C++实现简易的服务端和客户端原创 2023-04-25 01:25:46 · 315 阅读 · 1 评论