
Linux网络编程
不怨天,不尤人
键盘上的手艺人
展开
-
Linux学习之网络编程(TCP编程)
言之者无罪,闻之者足以戒。 - “诗序”1,TCP是什么?TCP传输控制协议向用户进程提供可靠的全双工字节流(字节流:给每一个字节编序)2,UDP是什么?UDP用户数据报协议是一种无连接的协议3,获取时间服务的客户端(1),创建一个的的IPv4(AF_INET)的字节流(SOCK_STREAM)套接字(2),连接到IP地址,端口号为8888的服务器(3)...原创 2018-10-28 22:39:01 · 286 阅读 · 0 评论 -
Linux学习之网络编程(组播编程)
言之者无罪,闻之者足以戒。 - “诗序”1、组播IP地址 224.0.0.0 ~ 239.255.255.255 组播以太网地址(MAC地址) 开头高三个字节总是 01:00:5e2、组播分为两部分: 1)、组播数据流 ,目的MAC地址为01:00:5e:xx:xx:xx 224.25.25....原创 2018-11-18 19:41:48 · 802 阅读 · 0 评论 -
Linux学习之网络编程(广播编程)
言之者无罪,闻之者足以戒。 - “诗序”下面我们看一下播的分类:(1)单播(unicast)(2)任播(anycast)(3)组播(multicast)(4)广播(broadcast)注意:广播和组播都需要使用UDP,都不能使用TCP地址表示方式:(1)IPv4地址的表示 {子网id , 主机id}A/B/C/D/E五类地址,-1表示所有位都为1 的字段(2...原创 2018-11-18 17:11:46 · 311 阅读 · 0 评论 -
Linux学习之网络编程(epoll的用法)
言之者无罪,闻之者足以戒。 - “诗序”epoll相关的函数包含在头文件<sys/epoll.h>epoll是Linux内核为处理大批量句柄而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。1. int epoll_create(int size);说明:创建一个...原创 2018-11-12 21:18:09 · 1117 阅读 · 0 评论 -
Linux学习之网络编程(select)
言之者无罪,闻之者足以戒。 - “诗序”1、阻塞式I/O下面看一下实现的逻辑:2、非阻塞式I/O下面看一下实现的逻辑:3、I/O复用(select/epoll)(1) int select (int maxfdp, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeo...原创 2018-11-09 20:54:34 · 1361 阅读 · 1 评论 -
Linux学习之网络编程(多进程并发服务器)
言之者无罪,闻之者足以戒。 - “诗序”上面我们所说过的通信都是一个服务器一个客户端之间的通信,下面我们来交流一下多进程并发服务器的相关知识逻辑上就是这个样子的,就是一个服务器多个客户端进行数据的传输。1、发送数据的函数:ssize_t send(int sockfd, const void *buf, size_t len, int flags);第一个参数:是由sock...原创 2018-11-07 13:19:12 · 600 阅读 · 0 评论 -
Linux学习之网络编程(UDP编程)
言之者无罪,闻之者足以戒。 - “诗序”前几篇文章说的都是TCP通信的问题,这篇文章说一下UDP通信的相关内容:下面来看一下基于UDP的获取时间的客户服务器的程序框图:(1)、创建一个基于IPv4(AF_INET)的数据报套接字(SOCK_DGRAM)(2)、ssize_t recvfrom(int sockfd, void *buf, size_t len, int fla...原创 2018-10-30 21:24:10 · 342 阅读 · 0 评论 -
Linux学习之网络编程(TCP编程 模型总结)
言之者无罪,闻之者足以戒。 - “诗序”TCP通信也就是服务器和客户端的一种通信方式,它的整体框架为:针对TCP通信所用到的函数,我来做一下说明:(1)插座创造一个套接字int socket(int domain,int type,int protocol)头文件的:#include <SYS / socket.h>中第一个参数:通信域,确定通信特性,包括地...原创 2018-10-30 13:29:27 · 542 阅读 · 0 评论 -
Linux学习之网络编程(TCP相关基础知识)
言之者无罪,闻之者足以戒。 - “诗序”、1、网络字节序:在TCP的编写过程中需要从网络字节序转换到主机字节序,当然也需要从主机字节序转换到网络字节序htons 把 unsigned short类型从主机序转换到网络序htonl把unsigned long类型从主机序转换到网络序ntohs把unsigned short类型从网络序转换到主机序ntohl把unsigned long类型从...原创 2018-10-29 22:24:37 · 159 阅读 · 0 评论 -
Linux学习之网络编程(TCP三次握手四次挥手)
言之者无罪,闻之者足以戒。 - “诗序”1、三次握手:看一下三次握手的框图:(1)、服务器必须准备好接受外来连接(2)、客户端调用connect来主动打开一个连接,此时客户端TCP将会发送一个SYN分节(3)、服务器必须确认客户的SYN(4)、客户必须确认服务器的SYN下面我们看一下wireshark对照着这张图我们就可以理解上面的框图中,三次握手的概念了。...原创 2018-10-29 20:21:57 · 302 阅读 · 0 评论 -
Linux学习之网络编程(原始套接字)
言之者无罪,闻之者足以戒。 - “诗序”1、创造一个套接字int socket(int domain,int type,int protocol)头文件的:#include <SYS / socket.h>中第一个参数:通信域,确定通信特性,包括地址格式域描述第二个参数:套接字类型第三个参数:指定相应的传输协议返回值:成功则返回套接字文件描述符,失败返回-1...原创 2018-11-18 20:57:47 · 247 阅读 · 0 评论