
网络
lichao268089
这个作者很懒,什么都没留下…
展开
-
网络应用程序设计模式
C/S模式:传统的网络设计模式,客户机服务器模式,需要在通讯两端部署客户机和服务器来完成数据通信。B/S模式:浏览器/服务器模式.只需要在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据传输;C/S优点:1.协议选用灵活;2.可以缓存数据;缺点:1对用户安全构成威胁;2.开发工作量较大,调试困难;B/S优点:1.安全性高,跨平台;2.只用开发服务器,客户端用PC自...原创 2019-05-05 22:47:52 · 1401 阅读 · 0 评论 -
主机字节序和网络字节序转换函数
#include <arpa/inet.h>uint32_t htonl(uint32_t hostlong);<主机字节序转换位网络字节序32,转换IP地址时用>uint16_t htons(uint16_t hostshort);<主机字节序16位转换为网络字节序16位,转换端口时用>uint32_t ntohl(uint32_t netlong);&...原创 2019-05-12 14:28:06 · 623 阅读 · 0 评论 -
sockaddr数据结构
struct sockaddr:用于描述IPV4协议:目前主要使用sockaddr_in,传参时转换为(sockaddr*)指针struct sockaddr_in {sa_family_t sin_family; /* address family: AF_INET /地址结构类型ipv4或者IPv6in_port_t sin_port; / port in netw...原创 2019-05-12 14:45:24 · 230 阅读 · 0 评论 -
网络套接字函数
socket函数#include <sys/types.h> /* See NOTES */#include <sys/socket.h>int socket(int domain, int type, int protocol);domain:AF_INET这是大多数用来产生socket的协议,使用TCP或者UDP来传输,用IPv4地址;AF_INET6与上...原创 2019-05-12 15:41:36 · 192 阅读 · 0 评论 -
socket server实现
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <sys/socket.h> 4 #include <arpa/inet.h> 5 #include <unistd.h> 6 #include <ctyp...原创 2019-05-12 16:57:28 · 144 阅读 · 0 评论 -
socket client
``1 #include <stdio.h>2 #include <stdlib.h>3 #include <sys/socket.h>4 #include <arpa/inet.h>5 #include <string.h>6 #include <unistd.h>78 #define SERV_PORT 6...原创 2019-05-12 17:34:49 · 367 阅读 · 0 评论 -
多进程服务器
父子进程之间的数据拷贝关系父子进程之间的数据拷贝关系以及进程之父子进程的关系总结:读时共享,写时复制;多进程并发服务器实现原创 2019-05-16 23:14:42 · 161 阅读 · 0 评论 -
socket 端口复用
TCP协议规定,主动关闭连接的一方处于TIME_WAIT状态,等待两个MSL的时间后才能回到CLOSED状态,如果先CTRL-C终止了server,所以server是主动关闭连接的一方,在TIME_WAIT期间仍然不能再次监听同样的server 端口;端口复用在server的TCP连接没有完全断开之前不允许重新监听是不合理的。因为TCP连接没有完全断开指的是connfd(127.0.0.1:...原创 2019-05-22 23:14:19 · 5444 阅读 · 0 评论 -
多路IO转接服务器
多路IO转接服务器也叫做多任务IO服务器,该类服务器实现的主旨思想是,不再由应用程序自己监听客户端连接,取而代之由内核替应用程序监视文件;主要使用的方法有3种;select1.select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯打开进程的文件描述符个数并不能改变select监听文件个数;2.解决1024以下客户端时使用select是很适合的,但如果链接客户端过多...原创 2019-05-22 23:42:58 · 358 阅读 · 0 评论 -
TCP三次握手和次握手
TCP时序:由于网络层不稳定性。硬件联系紧密传输 层 :1.完全不弥补–UDP无连接不可靠报文传输;2.完全弥补–TCP面向连接的可靠数据包传输;所谓三次握手就是建立连接(1.端发送连接请求;2.服务器回复客户端连接请求,并向客户端发送连接请求;3.客户端回复服务器连接请求,两端连接成功;关闭连接时就是4次握手;半关闭:客户端没有数据发送,但依然可以从服务器接收数据;或者服务器没...原创 2019-05-15 23:21:23 · 129 阅读 · 0 评论 -
以太网帧格式
其中的目的地址和源地址指的是网卡的硬件地址(也叫MAC地址),长度是48字节,是在网卡出厂时固化的;协议字段又三种值,分别对应IP,ARP,RARP.帧尾是CRC校验码;ARP数据报:获取下一个路由节点的MAC地址;...原创 2019-05-08 22:49:00 · 1538 阅读 · 0 评论 -
socket client
在这里插入代码 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <sys/socket.h> 4 #include <arpa/inet.h> 5 #include <string.h> 6 #include <unistd.h> 7 8...原创 2019-05-13 22:05:28 · 2547 阅读 · 0 评论 -
socket特性
socket文件的特性和管道一样,read时会出现阻塞;端口查询命令: netstat -apn | grep + 端口号;注意:当先杀掉server时,然后再重新启动server和客户端,由于此时端口还没有被释放,会出现客户端无法和server通信;...原创 2019-05-13 22:54:55 · 367 阅读 · 0 评论 -
IP段数据
IP段可以存储16位总长度的字节数,就是2的16次方,65535;而ARP协议中最多只能存1500字节数,所以需要分多次传输;原创 2019-05-09 22:29:57 · 317 阅读 · 0 评论 -
NAT映射机制
192.168这种IP一般都是局域网IP,一般都不是公网IP;路由器中一般还有一个NAT映射表;路由器本身IP是公网IP,像123.24.56.78假设从北京发数据的机器IP是192.168.1.35,而上海的机器也是192.168.1.35,一个路由器可以映射到多个终端电脑,这些局域网电脑对应各自的IP发出来的数据都经过NAT映射到这台路由器,只是端口都不一样,每台机器映射过来的信息;...原创 2019-05-09 22:54:47 · 1804 阅读 · 1 评论 -
网络IP访问机制
公网IP对公网IP:直接访问;公网IP对私网IP:NAT映射;私网IP对公网IP:NAT映射;私网IP对私网IP:NAT映射和打洞机制;原创 2019-05-09 23:08:15 · 362 阅读 · 0 评论 -
socket解释
IP地址:在网络中标识唯一一台电脑;端口号:在一台主机中唯一标识一个进程;IP + port:在网络环境中唯一标识一个进程(socket);socket是一种伪文件(不会占用空间);socket是全双工,它有两个缓冲区,所以它能够实现双向全双工;...原创 2019-05-09 23:24:19 · 286 阅读 · 0 评论 -
socket特性
socket文件的特性和管道一样,read时会出现阻塞;端口查询命令: netstat -apn | grep + 端口号;注意:当先杀掉server时,然后再重新启动server和客户端,由于此时端口还没有被释放,会出现客户端无法和server通信;早期UNIX系统的一个特性是:如果在进程执行一个低速系统调用而阻塞期间捕捉到一个信号,则该系统调用就被中断不再继续执行。该系统调用返回出错,其...原创 2019-05-15 22:32:42 · 518 阅读 · 0 评论 -
select函数原型
#include <sys/time.h>#include <sys/types.h>#include <unistd.h>int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);void FD_CLR(int f...原创 2019-05-23 00:18:47 · 779 阅读 · 0 评论