socket通信
萧戈
从事视频方向的开发
展开
-
SetSockOpt的使用
设置套接口的选项。int PASCAL FAR setsockopt( SOCKET s, int level, int optname,const char FAR* optval, int optlen);s:标识一个套接口的描述字。level:选项定义的层次;目前仅支持SOL_SOCKET和IPPROTO_TCP层次。optname:需设置的选项。optval:指转载 2016-08-16 09:01:17 · 1620 阅读 · 0 评论 -
arp根据IP查找mac地址的过程
整个过程如下所示:1.首先arp协议会发送一条arp广播消息,寻找对应IP地址的mac地址。2.目标主机会回复一条arp消息,告诉它自己的IP地址和mac地址。原创 2016-12-21 17:12:51 · 13356 阅读 · 1 评论 -
windows下面调用tracert命令抓包
命令调用如下:抓包情况如下:原创 2016-12-22 13:57:46 · 18364 阅读 · 3 评论 -
ICMP报文类型
原创 2016-12-22 14:08:58 · 570 阅读 · 0 评论 -
traceroute程序的实现
TraceRoute(tracert)实现原理 :http://blog.csdn.net/microtong/article/details/3220450TraceRoute(tracert)源码(基于原始套接字实现) :http://blog.csdn.net/microtong/article/details/3220463TraceRoute(tracert)源码原创 2016-12-22 14:30:32 · 3461 阅读 · 0 评论 -
IP分片
原创 2016-12-23 10:14:11 · 403 阅读 · 0 评论 -
SOCKET通信中TCP、UDP数据包大小的确定
TCP、UDP数据包大小的确定 UDP和TCP协议利用端口号实现多项应用同时发送和接收数据。数据通过源端口发送出去,通过目标端口接收。有的网络应用只能使用预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为UDP和TCP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。动态端口的范围是从1024到65535。 MTU最大传输单转载 2016-12-23 10:17:43 · 997 阅读 · 0 评论 -
IP首部
原创 2016-12-23 15:30:36 · 390 阅读 · 0 评论 -
UDP首部
原创 2016-12-23 15:31:45 · 501 阅读 · 0 评论 -
数据从网络层发送到以太网经过的过程
原创 2016-12-19 17:53:32 · 811 阅读 · 0 评论 -
setsockopt 设置 SO_LINGER 选项
setsockopt设置 SO_LINGER 选项 此选项指定函数close对面向连接的协议如何操作(如TCP)。内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。 SO_LINGER选项用来改变此缺省设置。使用如下结构:struct linger { int l_onoff; /* 0 = of转载 2017-04-18 17:02:16 · 2418 阅读 · 0 评论 -
windows socket编程:select 用法 例子
http://blog.csdn.net/zjsiva/article/details/5895087服务器端:[cpp] view plain copy print?#include #include #include #pragma comment(lib,"ws2_32.lib") #def转载 2017-07-08 13:23:02 · 384 阅读 · 0 评论 -
再次深入理解TCP网络编程中的send和recv
本篇我们用一个测试机上的阻塞socket实例来说明主题。文章中所有图都是在测试系统上现截取的。需要理解的3个概念1. TCP socket的buffer每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的流量(拥塞)控制便是依赖于这两个独立的buffer以及buffer的填充状态。接收缓冲区把数据缓存入内核,应用进程一转载 2017-07-10 09:13:41 · 350 阅读 · 0 评论 -
windows socket编程总结
windows的网络编程接口没有像linux那么丰富,功能也要少很多,下面针对几个主要的接口做一下介绍:1.1. SOCKET WSAAPI socket(int af,int type,int protocol)//IPV4字符串和整形(为网络字节序)之间的转换unsigned long WSAAPI inet_addr(const char * cp);char原创 2016-08-15 18:34:23 · 583 阅读 · 0 评论 -
IP首部简介
原创 2016-12-15 13:52:05 · 405 阅读 · 0 评论 -
TCP首部
原创 2016-12-16 10:57:24 · 286 阅读 · 0 评论 -
Windows socket编程头包含
#ifndef WIN32_LEAN_AND_MEAN#define WIN32_LEAN_AND_MEAN#endif#include #include #include #include #include #pragma comment(lib, "Ws2_32.lib")int main() { return 0;}原创 2016-08-16 09:35:25 · 251 阅读 · 0 评论 -
如何检查Socket是否断开
最近在做一个TCP采集程序,使用到C/S的结构。功能比较的简单,就是TCP采集程序作为服务器,信令采集设备作为客户端,客户端与服务器端之间建立长连接之后,开始发送信令报文给服务器。在服务器端使用多线程方式来处理每个客户端的socket连接,服务器端不主动断开链路,也没有心跳机制来维护连接的状态,客户端发送数据的时间也是不一定的,只要有采集到信令数据时才进行发送。在客户端socket断开后,服务器端原创 2016-08-09 15:37:54 · 6638 阅读 · 0 评论 -
首部检验和计算
IP/ICMP/IGMP/TCP/UDP等协议的校验和算法都是相同的,算法如下:在发送数据时,为了计算IP数据包的校验和。应该按如下步骤:(1)把IP数据包的校验和字段置为0;(2)把首部看成以16位为单位的数字组成,依次进行二进制反码求和;(3)把得到的结果存入校验和字段中。在接收数据时,计算数据包的校验和相对简单,按如下步骤:(1)把首部看成以16位为单位的数字组成,依原创 2016-08-09 15:39:23 · 25155 阅读 · 0 评论 -
setsockopts使用 ioctlsocket 设置非阻塞SOCKET函数
setsockopt ioctlsocket 设置非阻塞SOCKET函数1,ioctlsocket()#include This function controls the I/O mode of a socket.int ioctlsocket( SOCKET s, long cmd, u_long FAR* argp);转载 2016-08-09 15:42:49 · 4013 阅读 · 0 评论 -
inet_addr使用要注意的地方
struct in_addr addr1,addr2;long l1,l2;l1= inet_addr("192.168.0.74");l2 = inet_addr("211.100.21.179");memcpy(&addr1, &l1, 4);memcpy(&addr2, &l2, 4);printf("%s : %s\n", inet_ntoa(addr1),原创 2016-08-09 15:45:50 · 4753 阅读 · 0 评论 -
IO完成端口用于socket通信
http://blog.csdn.net/u012501459/article/details/48182783转载 2016-12-09 09:05:00 · 491 阅读 · 0 评论 -
手把手教你玩转SOCKET模型之重叠I/O篇(上)
手把手教你玩转SOCKET模型之重叠I/O篇 “身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人。我也希望大家能把自己的所学和他人一起分享,不要去鄙视别人索取时的贪婪,因为最应该被鄙视的是不肯付出时的吝啬。”转载 2016-12-09 15:41:39 · 1893 阅读 · 2 评论 -
手把手教你玩转SOCKET模型之重叠I/O篇(下)
四。 实现重叠模型的步骤作了这么多的准备工作,费了这么多的笔墨,我们终于可以开始着手编码了。其实慢慢的你就会明白,要想透析重叠结构的内部原理也许是要费点功夫,但是只是学会如何来使用它,却是真的不难,唯一需要理清思路的地方就是和大量的客户端交互的情况下,我们得到事件通知以后,如何得知是哪一个重叠操作完成了,继而知道究竟该对哪一个套接字进行处理,应该去哪个缓冲区中的取得数据转载 2016-12-09 15:43:04 · 1016 阅读 · 0 评论 -
手把手教你玩转网络编程模型之完成例程(Completion Routine)篇(上)
前 言记得写这个系列的上一篇文章的时候已经是四年前了,准确的说是四年半以前了,翻开我尘封已久的IO模型里面的“完成例程”的实现方式及示例代码。本文凝聚着笔者心血,如要转载,请指明原作者及出处,谢谢!不过代码写得不好,欢迎改进,而且没有版权,请随便散播、使用。OK, Let’sGo ! Have fun! 本文配套的示例源码下载地址(在我的下载空间里)转载 2016-12-09 16:21:09 · 1300 阅读 · 1 评论 -
手把手教你玩转网络编程模型之完成例程(Completion Routine)篇(下)
四. 完成例程的实现步骤基础知识方面需要知道的就是这么多,下面我们配合代码,来一步步的讲解如何亲手实现一个完成例程模型(前面几步的步骤和基于事件通知的重叠I/O方法是一样的)。【第一步】创建一个套接字,开始在指定的端口上监听连接请求和其他的SOCKET初始化全无二致,直接照搬即可,在此也不多费唇舌了,需要注意的是为了一目了然,我去掉了错误处理,平常转载 2016-12-09 16:22:53 · 782 阅读 · 0 评论 -
完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
转载自:http://blog.csdn.net/PiggyXP/article/details/6922277前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚….. 这篇文档我非常详细并且图文并茂的介绍了关于网络编程转载 2016-12-09 17:44:29 · 928 阅读 · 0 评论 -
Windows Socket五种I/O模型
Winsock 的I/O操作:1、 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字 默认为阻塞模式。可以通过多线程技术进行处理。 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。但功能强大。为了解决转载 2016-12-09 17:46:49 · 1484 阅读 · 0 评论 -
对Windows下的Socket通信进行封装
由于socket通信的大部分代码都有重合现象。所以针对TCP和UDP数据传输封装了一个类,可以基于此类传输数据。类如下:MSSocket.h文件:// MSSocket.h: interface for the CMSSocket class.////////////////////////////////////////////////////////////////////////原创 2017-08-08 08:41:14 · 816 阅读 · 0 评论