
网络/通讯
farrellcn
这个作者很懒,什么都没留下…
展开
-
Windows Socket五种I/O模型——代码全攻略
如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completi转载 2011-10-12 14:11:53 · 369 阅读 · 0 评论 -
传输层安全协议抓包分析之SSL/TLS
1. 协议介绍SSL/TLS是保护计算机网络通讯安全的一类加密协议,它们在传输层上给原先非安全的应用层协议提供加密保护,如非安全的HTTP协议即可被SSL/TLS保护形成安全的HTTPS协议。SSL、TLS协议其实是有所差异的,TLS协议是继承了SSL协议并写入RFC,标准化后的产物。因此,通常使用SSL来指代SSL协议和TLS协议。SSL (Secure Sock转载 2017-08-29 13:26:42 · 1927 阅读 · 0 评论 -
TCP的ACK原理和延迟确认机制
一、ACK定义TCP协议中,接收方成功接收到数据后,会回复一个ACK数据包,表示已经确认接收到ACK确认号前面的所有数据。ACK字段长度为32位,能表示0~2^32-1之间的值。二、ACK作用发送方在一定时间内没有收到服务端的ACK确认包后,就会重新发送TCP数据包。发送方收到了ACK,表明接收方已经接收到数据,保证了数据的可靠达到。三、ACK机制接转载 2017-08-23 21:59:29 · 2519 阅读 · 0 评论 -
epoll使用详解(精髓)
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且转载 2014-04-02 16:18:19 · 501 阅读 · 0 评论 -
端口号
端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立。原创 2012-10-16 11:29:04 · 540 阅读 · 0 评论 -
lwip学习笔记之几个重要的数据结构详解
struct pbuf { /** next pbuf in singly linked pbuf chain */ struct pbuf *next; /** pointer to the actual data in the buffer */ void *payload; /** * total length of this buffer and all原创 2012-08-10 15:16:53 · 1959 阅读 · 0 评论 -
Linux 与 CONE NAT 和 Symmetric NAT
1. NAT 的划分RFC3489 中将 NAT 的实现分为四大类:1. Full Cone NAT 完全锥形 NAT2. Restricted Cone NAT 限制锥形 NAT (可以理解为 IP 限制)3. Port Restricted Cone NAT 端口转载 2012-02-02 17:19:30 · 4468 阅读 · 1 评论 -
四种不同的NAT类型及检测方法
考 虑到UDP的无状态特性,目前针对其的NAT实现大致可分为Full Cone、Restricted Cone、Port Restricted Cone和Symmetric NAT四种。值得指出的是,对于TCP协议而言,一般来说,目前NAT中针对TCP的实现基本上是一致的,其间并不存在太大差异,这是因为TCP协议本身 便是面向连接的,因此无需考虑网络连接无状态所带来复杂性。用语定义转载 2012-02-02 17:16:04 · 1563 阅读 · 0 评论 -
GPRS模块CME ERROR CODE
CME ERROR's (GSM Equipment related codes)Error DescriptionCME ERROR: 0 Phone failureCME ERROR: 1 No connection to phoneCME E转载 2011-10-14 16:32:17 · 5236 阅读 · 0 评论 -
C++ socket程序
C++ socket程序下面是一个C++调用windows API实现有通信程序,您可以据此进行修改,封装成类.// *******************************************************************// clien转载 2011-10-12 14:33:50 · 801 阅读 · 0 评论 -
SIMCOM公司的SIM300的AT指令中文翻译
SIMCOM公司的SIM300的AT指令中文翻译根据V.25TER的AT指令概要(Overview of AT Commands According to V.25TER)A/ 重新发送最后给的AT指令(Reissues the last command g转载 2011-10-12 14:28:26 · 1324 阅读 · 0 评论 -
PHP套接字应用
程序首先创建一个socket,socket_create (AF_INET, SOCK_STREAM, SOL_TCP),接着使用socket_bind ($socket, $ip, $port)将一个socket绑定到服务器的监听端口,监听该socket,socket_list原创 2011-04-27 19:13:00 · 1901 阅读 · 0 评论 -
Socket的阻塞模式和非阻塞模式
阻塞模式 Windows套接字在阻塞和非阻塞两种模式下执行I/O操作。在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里。相反,在非阻塞模式下,套接字函数会立即返回,而不管I/O是否完成,该函数所在的线程会继续运行。转载 2011-05-04 17:35:00 · 5401 阅读 · 1 评论 -
判断客户端是否主动断开连接
如果客户端主动断开了连接,select所监视的文件描述符发生变化,select返回一个正值,recv函数返回0,据此可以判断客户端是否主动断开了连接。原创 2011-05-16 11:45:00 · 1339 阅读 · 0 评论 -
select等待的困惑
问题描述:在socket编程使用select时,其中的一个参数timeout,在设置为struct timeval timeOut={0,0},即不等待时,程序运行后的CPU占用率之先生高,即使只有一个线程的时候,也很快让CPU使用率达到100%,开了三个同时连接的线程后,情况更原创 2011-05-23 10:21:00 · 983 阅读 · 0 评论 -
将ACCEPT改成非阻塞型
这个项目中写的程序是与远端进行SOCKET通信,用到ACCEPT来接受远程的连接请求,一直以来在程序里对ACCEPT用的都是阻塞方式,接收到一个新的连接请求后,就创建一个新的线程处理与客户端的通信任务。今天由于需要实现服务器端设置客户端心跳包周期的功能,如果每个线程都去查询数据库原创 2011-08-05 18:43:14 · 11395 阅读 · 0 评论 -
再谈select, iocp, epoll,kqueue及各种I/O复用机制
转自:https://blog.youkuaiyun.com/shallwake/article/details/5265287上篇文章太过幼稚,一派胡言,希望没有误导大家。。我也是菜鸟,学习本身就是一个不断追求真理的过程,希望能谅解:)首先感谢kasicass GG指出错误(已经指导我很多次了,非常感谢~~),然后我又查阅了一些资料,再次整理,more seriously and detailedly...转载 2019-04-02 15:32:28 · 154 阅读 · 0 评论