网络编程
文章平均质量分 83
FreedomRoad~
专注于app底层/架构/算法/业务工作流程,记录进步的足迹和感悟。
展开
-
网络数据的传递
/*网络之间整数,浮点数,非数值信息的传递:1.基本缓存整数传递:写入应用缓存会放到协议缓存时候:memcpy读入字符信息。布尔类型byte类型直接写入。整型:htonshtonlhtonll转换大小端后写入。读取应用缓存来自协议缓存时候:memcpy截取字符串的数据。类型转换:布尔Byte直接读取整型:多字节组成需要转换ntoh原创 2015-03-03 22:41:27 · 1031 阅读 · 0 评论 -
TCP建立和释放原理和需要注意的问题
I.TCP报文:各个段位说明: 源端口和目的端口: 各占 2 字节.端口是传输层与应用层的服务接口.传输层的复用和分用功能都要通过端口才能实现 序号: 占 4 字节.TCP 连接中传送的数据流中的每一个字节都编上一个序号.序号字段的值则指的是本报文段所发送的数据的第一个字节的序号 确认号: 占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的原创 2015-03-03 22:48:55 · 2375 阅读 · 0 评论 -
windows上的5种网络通信模型示例代码
一些好设计的经验:linux网络:高性能网络编程IO复用和Epoll高效率之处-遍历的集合更小空间换时间/水平触发和边缘触发主动返回。反应堆的设计模式-避免C风格的一个应用逻辑都需要处理多个对象而是用OO设计模式方式分离。windows网络:select模型,WSAAsyncSelect模型,WSAEventSelect模型,重叠Overlapped IO模原创 2015-03-03 22:57:43 · 8848 阅读 · 0 评论 -
同步异步/阻塞非阻塞 和 5种linux网络通信模型
本文整理转自:http://blog.csdn.net/hguisu/article/details/7453390会阻塞的函数:connect, accept,send/recv/sendto/recvfrom等读写函数.不会阻塞的函数:bind, listen,socket, closesocket.linux网络通信模型有:阻塞IO模型(同步),非阻塞IO模型(拷贝同步),I转载 2015-03-04 23:28:40 · 2123 阅读 · 0 评论 -
断点续传的原理
编程中对HTTP报文添加属性即可:发送断点续传报文内容:RANGE: bytes=2000070- 1. 发送代码:httpConnection.setRequestProperty("RANGE","bytes=2000070"); 服务器返回断点续传报文内容:206 Content-Length=106786028 Content-Range=bytes 2转载 2015-03-07 08:42:47 · 1381 阅读 · 0 评论 -
TCP/IP收发缓存_MSS/MTU算法机制_状态图_连接建立和断开之上的socket函数需要注意的问题
一、客户端socket函数:// 1. socket 请求前要先加载socket驱动库,指定协议族,socket类型,具体协议。SOCKET sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(INVALID_SOCKET == sClient) { printf("Get Socket Error: IN原创 2015-03-03 22:52:12 · 1663 阅读 · 0 评论 -
网络通信客户端模块的编写
参考文章:http://yjtjh.blog.51cto.com/1060831/2941191.设置socket选项/tcp建立和释放连接的状态CLOSE_TIME,TIME_WAITE/recv,send的异常处理// socket提供活保功能,也就是心跳SO_KEEPALIVESO_KEEPALIVE_VALS// 马上重新使用端口建立连接,避免WAIT_TIME原创 2015-03-07 08:42:57 · 1590 阅读 · 0 评论 -
wireshark抓包常用过滤规则
0.protocol过滤:tcpudparpicmphttpsmtpftpdnsmsnmsipssloicqbootp等1.mac过滤:eth.dst == A0:00:00:04:C5:84eth.src eq A0:00:00:04:C5:84eth.dst==A0:00:00:04:C5:84eth.dst==A原创 2015-08-27 17:34:16 · 8820 阅读 · 0 评论