linux网络编程
.
Acuity.
只要思想不滑坡,想法总比问题多。
展开
-
【Linux应用编程】基于UNIX域套接字的进程间通信
用于本地进程间通信的套接字称为unix域套接字(unix domain socket)原创 2020-07-23 23:52:49 · 2553 阅读 · 0 评论 -
【Linux网络编程】ioctl函数在网络编程中的应用(C语言实现一个ifconfig)
linux系统用户态与内核态(包括设备、驱动)进行非数据流的相关控制信息交互,一般是通过ioctl函数实现。相同的,用户态与网络设备相关的控制信息也是通过ioctl实现。实质上,ifconfig、route底层最终是通过调用ioctl函数实现其功能的原创 2020-07-09 23:50:19 · 2189 阅读 · 0 评论 -
【Linux网络编程】select、poll、epoll对比
select、poll、epoll是Linux系统I/O复用的实现手段,原创 2019-08-30 00:30:14 · 227 阅读 · 0 评论 -
【Linux 网络编程】TCP epoll聊天程序
实现目标【1】创建TCP服务器和客户端,实现简易聊天程序;【2】单一进程,通过I/O复用epoll函数实现;【3】客户端/服务器任一结束,结束连接和对方进程。epoll类函数 epoll与select/poll是有本质上区别的,是为了处理大批量文件描述符而作了改进的poll,相比select/poll能够显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。epoll特...原创 2019-08-27 00:16:42 · 1342 阅读 · 0 评论 -
【Linux网络编程】TCP select聊天程序
实现目标【1】创建TCP服务器和客户端,实现简易聊天程序;【2】单一进程,通过I/O复用select函数实现;【3】客户端/服务器任一结束,结束连接和对方进程。select函数 Linux系统中I/O复用实现方式有selece()、poll()、epoll()。I/O复用可以使单一进程可以同时监听多个文件描述符(句柄)事件的发生,而不用建立多个进程,在特殊情况下可以节约系统资源,但牺...原创 2019-08-23 00:10:51 · 651 阅读 · 0 评论 -
【Linux 网络编程】TCP多进程聊天程序
实现目标【1】创建TCP服务器和客户端,实现简易聊天程序;【2】数据收发单独进程实现;【3】客户端/服务器任一结束,结束连接和对方进程。服务器端(server)#include <stdio.h>#include <stdlib.h>#include <string.h>#include <netinet/in.h>#include...原创 2019-08-21 23:41:35 · 590 阅读 · 0 评论 -
【Linux 网络编程】TCP poll聊天程序
实现目标【1】创建TCP服务器和客户端,实现简易聊天程序;【2】单一进程,通过I/O复用poll函数实现;【3】客户端/服务器任一结束,结束连接和对方进程。poll函数 poll函数和select函数调用的本质一样的,也是对所有监听文件描述符进行轮询,有事件发生则返回。与select不同的是,poll监听文件描述符数目没有限制,poll执行完不会清空文件描述符集合,也就是不需每次都...原创 2019-08-24 17:42:46 · 659 阅读 · 0 评论 -
【Linux网络编程】socket编程“网络字节顺序”和“主机字节顺序”
1.大小端模式 在socket编程前,有必要知道大小端模式。大小端模式是指计算机内存中数据存放的模式,由CPU决定,与操作系统无关。大端模式(Big-endian,是指数据的高字节保存在内存的低地址中,数据的低字节保存在内存的高地址中,这种存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;与我们的阅读习惯一致。小端模式(Little-endian),是指数据...原创 2019-01-13 00:25:33 · 3857 阅读 · 0 评论 -
字符IP地址和整型数转换
IP(Internet Protocol),IP地址中文名称为互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 常用的IP地址有IPV4和IPV6,IPV4地址是一个32位的二进制数,通常...原创 2018-07-11 00:11:35 · 5617 阅读 · 0 评论 -
Qt获取本地ip地址
Qt提供相关获取ip地址的类,可以十分方便获取本机ip地址。QString MainWindow::read_ip_address(){ QString ip_address; QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses(); for (int i = 0; i &...原创 2017-12-27 09:00:00 · 3857 阅读 · 0 评论 -
通讯协议的选择,TCP or UDP
在网络应用系统的实现中,一般来说,有两类协议可供选择, TCP或者UDP。关于这个话题,网上有大量的文章讨论,我在这里只是做一个比较简单的总结:a. 从应用程序者角度来看,我们可以看到这样一些区别:在整个TCP的会话过程中,总是与一个socket句柄相关联。在对于UDP,是没有这样一个固定的socket句柄。TCP的socket句柄,你可以把它作为一个普通的IO句柄...转载 2017-09-19 09:22:48 · 1368 阅读 · 0 评论 -
TCP/IP协议三次握手与四次挥手流程解析
1.TCP报文格式TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。 下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,A转载 2017-08-19 10:55:20 · 614 阅读 · 0 评论 -
socket 详解
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?转载 2017-08-18 16:55:43 · 677 阅读 · 0 评论