网络编程
__lhy
Oh,I am programmer。
展开
-
icmp校验和算法详解
USHORT checksum(USHORT *buffer, int size){ unsigned long cksum=0; while(size >1)//将数据以每双字单位加入验证 { cksum+=*buffer++; size -=sizeof(USHORT); } if(size ) //假设为奇数 补全一个双字 { cksum += *(UCHAR*)buffer; } cksum = (cksum >>1转载 2011-04-02 10:58:00 · 8188 阅读 · 0 评论 -
获取进程网络连接状态
只实现TCP连接状态查看UDP类似请参考MSDNGetExtendedTcpTableGetExtendedUdpTable//---------------------------------------------------------------------------#include #pragma hdrstop#include #include #原创 2012-12-13 17:11:46 · 2617 阅读 · 0 评论 -
IOCP应用
//---------------------------------------------------------------------------#ifndef IOCP_H#define IOCP_H//---------------------------------------------------------------------------#include #in原创 2012-06-18 21:53:55 · 1952 阅读 · 0 评论 -
WSAAsyncSelect发送和接收数据
原文:http://www.cppblog.com/totti1006/archive/2007/08/16/30155.html我本想把发送和接收分开作为两部分,但是最后我决定只略微解释一下 FD_READ ,留下更多的时间来说明更复杂的 FD_WRITE , FD_READ 事件非常容易掌握. 当有数据发送过来时, WinSock 会以 FD_READ 事件通知你, 对于每一个 FD_RE原创 2012-05-24 23:38:12 · 1872 阅读 · 0 评论 -
分析http的一些简单实例源码
附图:以前写的一些分析http的demo,代码没有整理了,保持原样,大家不要介意哦:)分析http需要一个抓包工具 本人已上传一个绿色版http://download.csdn.net/detail/qq752923276/4129461本程序包含3个实例:模拟csdn http用户登录http下载http代理访问(呵呵,其实原创 2012-05-23 08:50:13 · 1531 阅读 · 0 评论 -
根据时间服务器校正系统时间-对时
本程序用于校正本机时间http://blog.csdn.net/qq752923276/article/details/7591198以下是使用方法1、默认方式,使用默认时间服务器时间校正本机时间2、命令行附加一个时间服务器IP参数,将根据指定时间服务器时间校正本机时间,如:timecalibration.exe 132.163.4.102 代码:// time原创 2012-05-22 15:30:32 · 7269 阅读 · 0 评论 -
WSAAsyncSelect应用
//---------------------------------------------------------------------------#ifndef Unit2H#define Unit2H//---------------------------------------------------------------------------#include #in原创 2012-05-31 16:50:55 · 1846 阅读 · 0 评论 -
非阻塞 socket 在send之后返回 WSAEWOULDBLOCK分析
转自:http://www.cnblogs.com/rollrock/archive/2011/10/11/2207516.html首先,Winsock 异常 10035 WSAEWOULDBLOCK (WSAGetLastError) 的意识是 Output Buffer 已经满了,无法再写入数据。确切的说它其实不算是个错误,出现这种异常的绝大部分时候其实都不存在 Output Bu原创 2012-05-29 22:30:32 · 1088 阅读 · 0 评论 -
TCP协议连接建立与连接断开过程
转自:http://robinjie.iteye.com/blog/289843根据TCP头部,说明下列3个包在连接建立过程中的次序.0020 00 50 83 aa 46 49 3e dd 33 96 37 a3 a0 12 ...P..FI>.3.7...0030 16 a0 c4 c0 00 00 02 04 05 b4 04 02 08 0a d7 9b原创 2012-04-20 10:27:51 · 3486 阅读 · 0 评论 -
IOCP在网络应用中常见错误分析
IOCP是一种异步套接字体机制,它是Windows系统中管理异步IO操作的API。使用IOCP,应用程序可以发送一个耗时的请求,然后执行其他的任务,而这个请求在内核执行,调用相应的驱动程序完成IO操作各个步骤。在大规模C/S架构的系统中,完成端口经常用于管理大量Socket连接。最近在一些网上代码和书店的部分参考书中,发现了一些常见的错误,这里经过简单总结,列出以下常见问题,供博友参考。1转载 2012-03-08 14:23:05 · 1070 阅读 · 0 评论 -
关于winpcap学习的一些链接
点击打开链接原创 2011-12-05 10:44:06 · 729 阅读 · 0 评论 -
用完成端口开发大规模响应的Winsock应用程序
作者:Anthony Jones&Amol Deshpande 翻译:刘西齐原文出处:http://msdn.microsoft.com/msdnmag/issues/1000/Winsock/转自:点击打开链接通常要开发网络应用程序并不是一件轻松的事情,不过,实转载 2011-08-16 12:09:23 · 1162 阅读 · 0 评论 -
Socket send函数和recv函数详解
int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端套接字描述符;第二个参数指明一个存放应用程序要发送数据的缓冲区;第三个参数指明实际要发送的数据的字节数;转载 2011-05-06 11:27:00 · 1008 阅读 · 0 评论 -
设置connect超时
<br />首先设置socket为非阻塞模式<br />再通过select查询超时<br />#include "stdafx.h"#include <WINSOCK2.H>#include <stdio.h>#pragma comment(lib,"ws2_32.lib")int main(int argc, char* argv[]){ WSADATA wsaData; if (WSAStartup(MAKEWORD(2,2),&wsaData)!=0) { ret原创 2011-04-25 18:47:00 · 2526 阅读 · 0 评论 -
WinPcap编程2——环境搭建
<br /><br />搭建WinPcap编程环境可以分为如下几步:<br />1.下载winpcap及开发包。winpcap下载地址:http://www.winpcap.org/install/default.htmwinpcap开发包: http://www.winpcap.org/devel.htm<br />2. 安装winpcap<br />3. 解压winpcap开发包,将得到一个WpdPack目录,该目录中包含了5个子目录:docs、Examples-pcap、Examples-remote转载 2011-04-15 10:53:00 · 992 阅读 · 0 评论 -
netstat实现
使用GetTCPTable,SetTCPTable枚举/删除TCP端口连接情况(类似Netstat) 收藏/* *IP Helper Function中提供了很多功能强大,使用简单的网络函数 * *这里写了两个调用GetTCPTable,SetTCPTable的函数,来说明其使用: *使用GetTCPTable来枚举TCP端口连接情况,模拟Netstat *使用SetTCPTable来关闭一个TCP连接,目前为止SetTCPTable只支持删除一个TCP连接功能 * *Co转载 2011-04-14 18:09:00 · 2769 阅读 · 1 评论 -
ICMP-ping源码
<br />//---------------------------------------------------------------------------#include <vcl.h>#include "Unit1.h"#include <stdio.h>#pragma hdrstop//---------------------------------------------------------------------------#pragma argsuse原创 2011-04-02 16:05:00 · 2804 阅读 · 1 评论 -
TCP/IP头格式
<br />一、先是常用的IP头格式。<br />IP头格式:<br />版本号 (4位)<br />IP头长度 (4位)<br />服务类型 (8位)<br />数据包长度 (16位)<br />标识段 (16位)<br />标志段 (16位)<br />生存时间 (8位)<br />传输协议 (8位)<br />头校验和 (16位)<br />发送地址 (16位)<br />目标地址 (16位)<br />选项<br />填充<br /><br />简单说明<br />============<br /转载 2011-04-02 12:21:00 · 1073 阅读 · 0 评论 -
阻塞socket 立即接收
我们使用TCP协议传输时会遇到这样一个问题:我们将数据send时,如果发送数据量较小,接收端不会立即recv。出现这个问题的原因是TCP协议传输采用了Nagle算法,Nagle算法目标是希望每次传输都是满负荷,也就是说它尽量让发送缓冲区达到最大负荷再实际传输。但是实际我们可能希望马上响应,那么我们就要自己找下解决方案。方案一://禁用Nagle算法。 bool chOp原创 2011-05-30 11:54:00 · 2467 阅读 · 3 评论