亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? multitst.c

?? Allows sending and receiving of multicast datagrams and experimentation with the multicast APIs
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*---------------------------------------------------------------------
 *
 *  Program: MULTITST.EXE  Optional WinSock features test program
 *
 *  filename: multitst.c
 *
 *  copyright by Bob Quinn, 1995
 *
 *  Description: this program let's you test the optional features multicast, 
 *   raw sockets and IP_TTL socket option in a WinSock implementation.
 *
 *  Specifically, it tests whether a WinSock DLL supports Steve Deering's 
 *  multicast API, as described in his document "IP Multicast Extensions 
 *  for 4.3BSD UNIX and related systems" that acommpanied RFC-1054
 *  (subsequently obsoleted by RFC-1112 "Host Extensions for IP Multicasting")
 *  that describes the mechanics of multicasting, and in particular the
 *  role that Internet Group Management Protcol (IGMP) plays.
 *
 *  It also calls socket() with type=SOCK_RAW and protocol=IPROTO_ICMP
 *  to attempt a ping (ICMP echo request and reply).  If you select the
 *  traceroute option, it will try to call setsockopt() with the
 *  level=IPPROTO_IP and option=IP_TTL (value 4) to set the IP "time to
 *  live" field (for traceroute).
 * .
 *  This software is not subject to any  export  provision  of
 *  the  United  States  Department  of  Commerce,  and may be
 *  exported to any country or planet.
 *
 *  Permission is granted to anyone to use this  software  for any  
 *  purpose  on  any computer system, and to alter it and redistribute 
 *  it freely, subject to the following  restrictions:
 *
 *  1. The author is not responsible for the consequences of
 *     use of this software, no matter how awful, even if they
 *     arise from flaws in it.
 *
 *  2. The origin of this software must not be misrepresented,
 *     either by explicit claim or by omission.  Since few users
 *     ever read sources, credits must appear in the documentation.
 *
 *  3. Altered versions must be plainly marked as such, and
 *     must not be misrepresented as being the original software.
 *     Since few users ever read sources, credits must appear in
 *     the documentation.
 *
 *  4. This notice may not be removed or altered.
 *	 
 ---------------------------------------------------------------------*/
#define STRICT

#include <windows.h>
#include <windowsx.h>
#include <winsock.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>

#include "resource.h"
#include "..\winsockx.h"
#include "..\wsa_xtra.h"

/* default multicast and destination port number to use */
#define DESTINATION_MCAST  "234.5.6.7"
#define DESTINATION_PORT  4567

#define USER_PARAMETER_VALUES 99
#define MCBUFSIZE 1024

/* display buffer (8K) */
#define DISP_LINE_LEN  128
#define DISP_NUM_LINES 64
#define DISP_BUFSIZE   DISP_LINE_LEN * DISP_NUM_LINES

/* externally defined functions */
extern SOCKET icmp_open (void);
extern int    icmp_close (SOCKET);
extern u_long icmp_sendto (SOCKET, HWND, LPSOCKADDR_IN, int, int, int);
extern u_long icmp_recvfrom (SOCKET, LPINT, LPINT, LPSOCKADDR_IN);
extern int    set_ttl (SOCKET, int);

/* internally defined public functions */
LRESULT CALLBACK MainWinProc(HWND, UINT, WPARAM, LPARAM);
BOOL FAR PASCAL BindDlgProc (HWND, UINT,  UINT, LPARAM);
BOOL FAR PASCAL SendDlgProc (HWND, UINT,  UINT, LPARAM);
BOOL FAR PASCAL OptionDlgProc (HWND, UINT,  UINT, LPARAM);
BOOL FAR PASCAL PingDlgProc (HWND, UINT, UINT, LPARAM);
void WSAErrMsg (LPSTR);

void InitWndData(HWND);
void UpdateDispBuf(HWND, LPSTR);
void UpdateWnd(HWND);

/* private data */
static HINSTANCE hInst;
static HWND      hwnd;

char  szAppName[] = "Multitst";

/* global data */ 
HWND hDeskTop;
RECT rcDeskTop;
int nDeskTopWidth, nXCenter, nDeskTopHeight, nYCenter;
int nMenuHeight, nCaptionHeight, nScrollWidth, nScrollHeight;
int nCharWidth, nCharHeight;
int nLinesToDisplay;
HGLOBAL hDispBuf;
LPSTR  lpDispBuf;
int nFirstLine=0;
int nLastLine=0;
int WSAInitFailed;
BOOL bBSD_OptNames=TRUE;  
char strDestMulti[MAXHOSTNAME] = {DESTINATION_MCAST}; 
char strSrcMulti[MAXHOSTNAME] = {DESTINATION_MCAST}; 
u_short nDestPort = DESTINATION_PORT;
u_short nSrcPort  = DESTINATION_PORT;
SOCKET hSock = INVALID_SOCKET;
struct sockaddr_in stDestAddr, stSrcAddr;
BOOL   bSocketOpen;
char achOutBuf[MCBUFSIZE];
char achInBuf [MCBUFSIZE];

/*-----------------------------------------------------------
 * Function: WinMain()
 *
 * Description: entry point
 */
int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE hPrevInst,
        LPSTR lpszCmdLine, int nShow)  {
  WNDCLASS  wc;
  MSG       msg;

  lpszCmdLine = lpszCmdLine;  /* avoid warning */ 
 
  hInst = hInstance;
  hwnd = NULL;
      
  if (!hPrevInst) {
    wc.style        = (unsigned int)NULL;
    wc.lpfnWndProc  = MainWinProc;
    wc.cbClsExtra   = 0;
    wc.cbWndExtra   = 0;
    wc.hInstance    = hInst;
    wc.hIcon        = LoadIcon(hInst,MAKEINTRESOURCE(MULTITST));
    wc.hCursor      = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground= GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName = MAKEINTRESOURCE(MULTITST);
    wc.lpszClassName= szAppName;                         

    if (!RegisterClass(&wc)) {
      MessageBox (NULL, "Couldn't register Window Class",
          NULL, MB_OK|MB_SYSTEMMODAL|MB_ICONHAND);
      return (0);
    }
  }
        
  InitWndData(hwnd);		/* for window dressing */

  hwnd = CreateWindow (szAppName,
    "Multitst",
    WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL,
    CW_USEDEFAULT, CW_USEDEFAULT,
    ((rcDeskTop.right-rcDeskTop.left)/2),  /* Window about half screen */ 
    ((rcDeskTop.bottom-rcDeskTop.top)/2),
    NULL,NULL,hInst,NULL);  
 
  if (hwnd == NULL) {
    MessageBox (NULL, "Couldn't create main window",
      NULL, MB_OK|MB_SYSTEMMODAL|MB_ICONHAND);
    return (0);
  }

  ShowWindow (hwnd, nShow);
  UpdateWindow(hwnd);
    	
  while ( GetMessage(&msg, NULL, 0, 0) ) {
    TranslateMessage (&msg);
    DispatchMessage (&msg);
  }
    
  if (hDispBuf)
    GlobalFree(hDispBuf);

  return (msg.wParam);
} /* end WndMain() */

/*-----------------------------------------------------------
 * Function: MainWndProc()
 *
 * Description: procedure for our main window.
 */
LRESULT CALLBACK MainWinProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
  static short cxChar, cyCaps, cyChar, cxClient, cyClient, nMaxWidth,
               nVscrollPos, nVscrollMax, nHscrollPos, nHscrollMax;
  FARPROC lpfnProc;
  HDC hdc;
  TEXTMETRIC tm;
  int WSAErr, WSAEvent, nRet;
 
  switch (msg) {
    case WM_CREATE:
      /*------------- Register with WinSock DLL -----------*/
      WSAInitFailed = 
        WSAStartup(WSA_VERSION, &stWSAData); 
      if (WSAInitFailed != 0)  {
        WSAperror(WSAInitFailed, "WSAStartup()", hInst);
        PostMessage(hwnd, WM_CLOSE, 0, 0L);
      }
      /* Initialize destination address structure */
      stDestAddr.sin_family       = PF_INET;
      stDestAddr.sin_addr.s_addr  = inet_addr (strDestMulti);
      stDestAddr.sin_port         = htons (nDestPort);
      
      /* get window vitals */
      hdc = GetDC(hwnd);
      GetTextMetrics(hdc, &tm);
      nCharWidth  = tm.tmAveCharWidth;
      nCharHeight = tm.tmHeight + tm.tmExternalLeading;
      ReleaseDC(hwnd, hdc);
  
      /* center window */
      CenterWnd (hwnd, NULL, TRUE);
      
      break;
    
    case WM_COMMAND:
      switch(wParam) {
        case WSA_ASYNC:
          /* We received a WSAAsyncSelect() FD_ notification message 
           *  Parse the message to extract FD_ event value and error
           *  value (if there is one).
           */
          WSAEvent = WSAGETSELECTEVENT (lParam);
          WSAErr   = WSAGETSELECTERROR (lParam);
          if (WSAErr) {
            /* Error in asynch notification message: display to user */
            int i,j;
            for (i=0, j=WSAEvent; j; i++, j>>=1); /* convert bit to index */
            WSAperror(WSAErr, aszWSAEvent[i], hInst);
            /* fall-through to call reenabling function for this event */
          }
          switch (WSAEvent) {
            int tmp;
            case FD_READ:
              /* Receive the available data */
              tmp = sizeof(struct sockaddr);
              nRet = recvfrom (hSock, (char FAR *)achInBuf, MCBUFSIZE, 0,
                (struct sockaddr *) &stDestAddr, &tmp);
              if (nRet == SOCKET_ERROR) {
                WSAErrMsg ("recvfrom()");
                break;
              }
              /* Display the data received.*/
              MessageBox (hwnd, (LPSTR)achInBuf, 
		      "Multicast received!", MB_SYSTEMMODAL);
              break;
          } /* end switch(WSAEvent) */
          break;
        case IDM_NEWSOCKET:
          /* close current socket (if there is one) */
          if (hSock != INVALID_SOCKET) {        
            nRet = closesocket (hSock);
            if (nRet == SOCKET_ERROR) {
              WSAErrMsg("closesocket()");
            }
          }
          hSock = socket (PF_INET, SOCK_DGRAM, 0);
          if (hSock == INVALID_SOCKET) {
            WSAErrMsg ("socket()");
          } else {
            /*
             * Register for FD_READ events and post a WSA_ASYNC message
             */
            nRet = WSAAsyncSelect (hSock, hwnd, WSA_ASYNC, FD_READ);
            if (nRet == SOCKET_ERROR) {
              WSAErrMsg("WSAAsyncSelect(FD_READ)");
            } else {
               wsprintf ((LPSTR)achOutBuf, 
                 "Socket %d registered for FD_READ", hSock);
               MessageBox (hwnd, (LPSTR)achOutBuf, 
                 "Ready to Send", MB_OK | MB_ICONASTERISK);
            }
          }
          break;
        case IDM_BIND:
          lpfnProc = MakeProcInstance((FARPROC)BindDlgProc, hInst);
          DialogBoxParam (hInst, 
            "BindDlg", 
            hwnd, 
            (DLGPROC)lpfnProc,
            MAKELPARAM(hInst, hwnd));
          FreeProcInstance((FARPROC) lpfnProc);
          break;
        case IDM_SOCKOPTS:
          lpfnProc = MakeProcInstance((FARPROC)OptionDlgProc, hInst);
          DialogBoxParam (hInst, 
            "MulticstDlg", 
            hwnd, 
            (DLGPROC)lpfnProc,
            MAKELPARAM(hInst, hwnd));
          FreeProcInstance((FARPROC) lpfnProc);
          break;
        case IDM_SENDTO:
          lpfnProc = MakeProcInstance((FARPROC)SendDlgProc, hInst);
          DialogBoxParam (hInst, 
            "SendDlg", 
            hwnd, 
            (DLGPROC)lpfnProc,
            MAKELPARAM(hInst, hwnd));
          FreeProcInstance((FARPROC) lpfnProc);
          break;
        case IDM_PING:
          lpfnProc = MakeProcInstance((FARPROC)PingDlgProc, hInst);
          DialogBoxParam (hInst, 
            "PingDlg", 
            hwnd, 
            (DLGPROC)lpfnProc,
            MAKELPARAM(hInst, hwnd));
          FreeProcInstance((FARPROC) lpfnProc);
          break;
        case IDM_EXIT:
          PostMessage (hwnd, WM_CLOSE, 0, 0L);
          break;
        case IDM_ABOUT:
          DialogBox (hInst, MAKEINTRESOURCE(IDD_ABOUT), hwnd, Dlg_About);
          break;
      } /* end switch(wParam) */
      break;
    case WM_DESTROY:
      if (!WSAInitFailed) {
        if (hSock != INVALID_SOCKET)
          closesocket (hSock);
        WSACleanup();
      }
      PostQuitMessage (0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国模大尺度私拍在线视频| 91精品麻豆日日躁夜夜躁| 91麻豆国产香蕉久久精品| 欧美人xxxx| 国产精品每日更新| 秋霞电影网一区二区| 99国产精品国产精品久久| 欧美大片一区二区| 一区二区激情小说| 成人动漫一区二区在线| 精品欧美乱码久久久久久1区2区| 尤物在线观看一区| 不卡高清视频专区| 久久免费的精品国产v∧| 天堂蜜桃一区二区三区| 97精品久久久午夜一区二区三区| 久久精品人人做人人综合| 免费高清视频精品| 欧美美女直播网站| 一区二区三区四区在线播放| 不卡视频一二三| 国产亚洲一本大道中文在线| 久久99精品国产麻豆婷婷| 91精品中文字幕一区二区三区| 亚洲欧美国产77777| 高清不卡在线观看| 久久精品一区二区三区不卡| 精品制服美女久久| 欧美一区二区三区男人的天堂 | 成人性生交大片| 日韩精品一区二区三区老鸭窝 | 国产精品一区免费视频| 欧美一级午夜免费电影| 三级不卡在线观看| 欧美疯狂性受xxxxx喷水图片| 亚洲电影一区二区| 欧美伊人精品成人久久综合97 | 不卡的电影网站| 国产精品无人区| av成人动漫在线观看| 中文一区一区三区高中清不卡| 国产99久久久久久免费看农村| 久久久久久黄色| 成人精品电影在线观看| 丝袜脚交一区二区| 欧美电影一区二区| 九色综合狠狠综合久久| 久久久久久久久久久久电影 | 国产精品国产三级国产| 不卡一区二区在线| 亚洲一区二区中文在线| 欧美一级精品大片| 国产美女久久久久| 日韩一区欧美小说| 欧美日韩精品免费观看视频| 美日韩一区二区| 久久精品视频在线免费观看| av影院午夜一区| 亚洲丰满少妇videoshd| 精品成人一区二区三区四区| 大尺度一区二区| 亚洲一区欧美一区| 日韩一区二区在线看| 福利一区二区在线观看| 亚洲最快最全在线视频| 欧美刺激脚交jootjob| 成人在线综合网站| 香蕉成人啪国产精品视频综合网| 精品国产99国产精品| 91蜜桃网址入口| 日本视频一区二区三区| 国产精品嫩草99a| 欧美日韩成人综合在线一区二区| 久草精品在线观看| 亚洲免费看黄网站| 日韩三级视频在线看| 99精品视频中文字幕| 日本va欧美va精品| 亚洲欧洲成人av每日更新| 91麻豆精品国产91久久久更新时间 | aaa欧美大片| 日韩精品国产精品| 亚洲视频 欧洲视频| 欧美变态tickle挠乳网站| 波多野结衣精品在线| 捆绑调教一区二区三区| 亚洲乱码中文字幕综合| 337p粉嫩大胆噜噜噜噜噜91av| 色成人在线视频| 成人黄色在线看| 久久99精品久久久久| 性做久久久久久久免费看| 国产精品私房写真福利视频| 精品免费国产二区三区 | 自拍视频在线观看一区二区| 欧美成人艳星乳罩| 欧美裸体bbwbbwbbw| 日本高清不卡视频| youjizz久久| 国产二区国产一区在线观看| 毛片av中文字幕一区二区| 视频一区在线播放| 亚洲黄色av一区| 1024国产精品| 国产精品免费免费| 亚洲国产精品成人综合 | 色哟哟日韩精品| 成人免费看片app下载| 精品一区二区在线播放| 美女视频免费一区| 丝袜美腿高跟呻吟高潮一区| 五月天一区二区三区| 亚洲成人动漫av| 亚洲成av人影院在线观看网| 亚洲综合男人的天堂| 亚洲最新在线观看| 亚洲一区免费在线观看| 亚洲一区二区三区视频在线播放| 亚洲欧美区自拍先锋| 亚洲人精品一区| 亚洲另类一区二区| 亚洲一区二区黄色| 午夜精品久久久久久久久| 亚洲成av人在线观看| 日本色综合中文字幕| 免费国产亚洲视频| 国产一区二区三区四区在线观看| 国产美女视频91| 成人黄色片在线观看| 91亚洲精品久久久蜜桃| 欧洲人成人精品| 欧美日韩国产成人在线91| 日韩一区二区免费视频| 欧美mv和日韩mv的网站| 国产亚洲va综合人人澡精品| 国产精品福利av| 一区二区三区四区av| 午夜久久电影网| 精品一区二区三区免费视频| 国产精品亚洲成人| 久久综合久久久久88| 国产欧美日韩视频一区二区| 国产精品美女久久久久久 | 又紧又大又爽精品一区二区| 五月激情六月综合| 韩国精品在线观看| 91视频免费看| 911精品产国品一二三产区 | 精品视频在线视频| 精品日产卡一卡二卡麻豆| 国产精品丝袜91| 午夜精品一区在线观看| 国产盗摄一区二区三区| 日本高清不卡视频| 2021久久国产精品不只是精品| 亚洲欧美综合在线精品| 日韩av中文字幕一区二区| 成人伦理片在线| 91精品国产综合久久久蜜臀图片| 国产欧美精品一区二区三区四区 | 成人av网址在线观看| 欧美亚男人的天堂| 久久精品这里都是精品| 亚洲成人av电影在线| 豆国产96在线|亚洲| 9191精品国产综合久久久久久| 国产亚洲成aⅴ人片在线观看| 亚洲va欧美va人人爽| 国产成人免费视频一区| 欧美日本一区二区| 中文字幕一区二区三区精华液| 免费一区二区视频| 色婷婷久久99综合精品jk白丝| 久久久久久**毛片大全| 午夜视频在线观看一区| www.欧美色图| www久久精品| 日日夜夜精品视频免费| 97se亚洲国产综合自在线不卡| 久久众筹精品私拍模特| 日韩黄色小视频| 在线免费亚洲电影| 国产精品成人网| 福利一区福利二区| 精品少妇一区二区三区免费观看 | 欧美高清在线精品一区| 蜜臀av性久久久久av蜜臀妖精| 在线观看亚洲成人| 亚洲色欲色欲www在线观看| 国内国产精品久久| 欧美一级日韩不卡播放免费| 国产福利精品导航| 日韩欧美一级精品久久| 欧美aaaaaa午夜精品| 欧美吻胸吃奶大尺度电影 | eeuss鲁一区二区三区| 国产喷白浆一区二区三区| 久久99精品国产| 久久亚洲一级片| 国产一区二区三区免费播放|