(SOCK_RAW) //编程环境: //程序说明:基于用户数据报协议UDP的程序实例//程序功能:在窗口中点击鼠标左键,则发送信息到端口号为6000的远程机上,并可以从端//口号6000的远程机接收数据#include"" #include<> /////////////////////////////////////////////////////////////////////////////////////////////////////// //说明全局量 HINSTANCEhInst; LRESULTCALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); ////////////////////////////////////////////////////////////////////////////////////////////////////// intAPIENTRYWinMain(HINSTANCEhI,HINSTANCEhP,LPSTRlp,intnC){ MSGmsg;HWNDhWnd; //实例句柄存入全局量hInsthInst=hI; WNDCLASSwc; memset(&wc,0,sizeof(WNDCLASS)); =(WNDPROC)WndProc; =hI; =LoadIcon(NULL,IDI_APPLICATION); = (HBRUSH)COLOR_WINDOW; ="W1"; RegisterClass(&wc); hWnd=CreateWindowEx(WS_EX_PALETTEWINDOW,"W1","UDP程序1[端口:8000]", WS_OVERLAPPEDWINDOW, 100,100,200,100, NULL,NULL,hI,NULL);if(!hWnd) returnFALSE; ShowWindow(hWnd,nC); //主消息循环 while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); }; } //////////////////////////////////////////////////////////////////////////////////////////////// //定义WinsockAPI需要的量 WSADATAws; SOCKETs1,s2; structsockaddr_inCs1A,Cs2A; //发送数据缓冲 charsendBuf[200]; //接收数据缓冲charrecvBuf[200];intlen; //存放接收到的字节数#defineCs1Port8000 //本地端口号#defineCs2Port6000 //远程端口号#defineCs1IP"" //本地IP地址#defineCs2IP"" //远程IP地址////////////////////////////////////////////////////////////////////////////////////////////////////////////////消息处理LRESULTCALLBACKWndProc(HWNDhW,UINTmsg,WPARAMwP,LPARAMlP){ switch(msg) { caseWM_DESTROY: //关闭程序触发事件//向Windows注销Socket触发事件 WSAAsyncSelect(s1,hW,0,0); //释放连接 closesocket(s1); //卸载动态链接库WinsockDLL WSACleanup(); PostQuitMessage(0);break; caseWM_CREATE: //初始化触发事件//装载动态链接库WinsockDLL WSAStartup(0x0202,&ws); //创建UDP套接字 s1=socket(,SOCK_DGRAM,0); //设置地址类型 =;
vc 网络程序设计实例 来自淘豆网m.daumloan.com转载请标明出处.