windows网络编程
小驹
小菜鸟
展开
-
网络编程初始化类 CInitSock
网络编程初始化类#include #pragma comment(lib, "ws2_32.lib")class CInitSock{public: CInitSock(BYTE minorVer=2, BYTE majorVer=2) { WORD wVersionRequested = MAKEWORD(minorVer, majorVer); WSADATA原创 2012-06-19 14:27:22 · 3283 阅读 · 0 评论 -
设置超时时间
设置超时时间BOOL SetTimeOut(SOCKET s, int nTime, BOOL bRecv){ int ret = ::setsockopt(s, SOL_SOCKET, bRecv?SO_RCVTIMEO:SO_SNDTIMEO, (char*)nTime, sizeof(nTime)); return ret!=SOCKET_ERROR;}原创 2012-07-10 10:15:37 · 812 阅读 · 0 评论 -
计算ICMP头的校验和:
计算ICMP头的校验和:USHORT checksum(USHORT* buff, int nSize){ unsigned long cksum=0; //将数据以字为单位加到cksum while (nSize > 1) { cksum += *buff++; nSize -= sizeof(USHORT); } //如果为奇数, 将最后一个字扩展到双字,再累加原创 2012-07-10 10:07:36 · 2896 阅读 · 0 评论 -
广播通信
广播通信代码框架:1. 协议都是:SOCKET s = ::socket(AF_INET, SOCK_DGRAM, 0);2. 服务端设置选项BOOL bBroadcast = TRUE;::setsockopt(s, SOL_SOCKET, SO_BROADCAST, (char*)&bBroadcast, sizeof(BOOL));3. 服务端向255.25原创 2012-07-08 18:06:07 · 1597 阅读 · 0 评论 -
WSAAsyncSelect模型
TCPServer.cpp#include "TCPServer.h"#include "resource.h"#define WM_SOCKET WM_USER+1CMyApp theApp;BOOL CMyApp::InitInstance(){ //初始化套接字 WSADATA wsaData; WORD wVersionRequested = MAKEWORD(2原创 2012-06-23 17:39:03 · 1767 阅读 · 0 评论 -
WSAEventSelect模型
4步走:1. //1. 事件句柄和套接字句柄表2. //2. 创建事件对象,并关联到新的套接字上3. //3. 在所有事件上等待 //对每个事件调用WSAWaitForMultipleEvents函数,以便确定它的状态4 //获取来到的消息,WSAEnumNetworkEvents会自动重置受信事件上代码:#include "InitSock.h"#include原创 2012-06-23 19:03:22 · 1010 阅读 · 0 评论 -
设置系统时间 系统时间网络更新
代码://根据返回的时间设置系统时间void setTimeFromTP(ULONG ulTime){ FILETIME ft; SYSTEMTIME st; //将基准时间转换成windows文件时间 st.wYear = 1900; st.wMonth = 1; st.wDay = 1; st.wHour = 0; st.wMinute = 0; st.wSecon原创 2012-06-20 16:50:50 · 1426 阅读 · 0 评论 -
I/O模型之select模型
代码:void main(){ CInitSock initSock; USHORT nPort = 9999; //监听的端口 SOCKET sListen = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sListen == INVALID_SOCKET) { printf("socket error..."); r原创 2012-06-20 17:34:46 · 1094 阅读 · 0 评论 -
得到本机的MAC,IP, MASK地址
#include "InitSock.h"#include #include #pragma comment(lib, "IPHLPAPI.lib")u_char g_ucLocalMac[6];DWORD g_dwGatewayIP;DWORD g_dwLocalIP;DWORD g_dwMask;BOOL GetGlobalData(){ PIP_ADAPTER_IN原创 2012-06-19 15:20:21 · 2305 阅读 · 0 评论 -
获取本机IP地址
#include "InitSock.h"#include void main(){ CInitSock initSock; char szHost[256] = {0}; ::gethostname(szHost, 256); hostent* pHost = ::gethostbyname(szHost); //in_addr是表示IP地址的结构 in_addr add原创 2012-06-19 14:46:24 · 941 阅读 · 2 评论 -
ping程序
ICMPPING程序代码:DWORD WINAPI ThreadProc(LPVOID lParam){ CInitSock initSock; HWND hWnd = (HWND)lParam; //从参数得到句柄 char szIp[64] ={0}; ::GetDlgItemTextA(hWnd, IDC_IP, szIp, sizeof(szIp)); //从控件得原创 2012-07-10 20:26:32 · 1162 阅读 · 0 评论