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

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

?? ua_time.c

?? Works a client and a server using UDP in asynchronous operation mode to implement the simple daytime
?? C
字號:
/*---------------------------------------------------------------------
 *
 *  Program: UA_TIME.EXE  Asynch UDP Time Client and Server
 *
 *  filename: ua_time.c
 *  
 *  copyright by Bob Quinn, 1995
 *   
 *  Description:
 *    Client and Server application that uses and provides "daytime"
 *    service as described by RFC 867.  Using UDP this simple service
 *    responds to an empty datagram received on port 13 by returning
 *    the current date and time as an ASCII character string.
 *
 *  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.
 *	 
 ---------------------------------------------------------------------*/
#include <windows.h>
#include <winsock.h> /* 32 and 16-bit Windows Sockets */
#include <string.h>  /* for _fmemcpy() & _fmemset() */
#include <time.h>

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

/* WinSock Version (1.1) */
#define WS_VERSION_REQD	0x0101

/* our asynch notification message */                             
#define WSA_ASYNC WM_USER+1

/* timeout id and period (in milliseconds) */
#define TIMEOUT_ID     1
#define TIMEOUT_PERIOD 30000 

#define BUF_SIZE 1024
#define ERR_SIZE 512
                             
/*------------ global variables ------------*/
WSADATA stWSAData;  /* WinSock DLL Info */

char szAppName[] = "UA_Time";

BOOL bRecieving = FALSE;  /* state flag */

SOCKET hSock = INVALID_SOCKET;  /* socket handle */
char szHost[MAXHOSTNAME] = {0}; /* remote host string (name or address) */

SOCKADDR_IN stLclName;  /* local socket name (address & port) */
SOCKADDR_IN stRmtName;  /* remote socket name (address & port) */

char achInBuf  [BUF_SIZE];  /* Input Buffer */
char achOutBuf [BUF_SIZE];  /* Output Buffer */

BOOL bBroadcast = FALSE;    /* Broadcast enabled flag */

HWND hwndMain;        /* Main window handle */
HINSTANCE hInst;      /* Instance handle */

/*------------- function prototypes --------------*/
LONG CALLBACK WndProc (HWND,UINT,WPARAM,LONG);
BOOL CALLBACK DestDlgProc  (HWND,UINT,UINT,LONG);

/*--------------------------------------------------------------------
 *  Function: WinMain()
 *
 *  Description: Initialize and start message loop
 *
 */
int PASCAL WinMain
  (HANDLE hInstance,
   HANDLE hPrevInstance,
   LPSTR  lpszCmdLine,
   int    nCmdShow)
{
    MSG msg;
    int nRet;
    WNDCLASS  wndclass;

    lpszCmdLine = lpszCmdLine; /* avoid warning */
                      
    hInst = hInstance;  /* save instance handle */

    if (!hPrevInstance) {
      /* register window class */
      wndclass.style         = CS_HREDRAW | CS_VREDRAW;
      wndclass.lpfnWndProc   = WndProc;
      wndclass.cbClsExtra    = 0;
      wndclass.cbWndExtra    = 0;
      wndclass.hInstance     = hInstance;
      wndclass.hIcon         = LoadIcon(hInst, MAKEINTRESOURCE(UA_TIME));
      wndclass.hCursor       = LoadCursor(NULL,IDC_ARROW);
      wndclass.hbrBackground = COLOR_WINDOW+1;
      wndclass.lpszMenuName  = MAKEINTRESOURCE(UA_TIME);
      wndclass.lpszClassName = szAppName;
       
      if (!RegisterClass (&wndclass)) {
        return (0);
      }
    }
    
    hwndMain = CreateWindow(
        szAppName,
        "Daytime Client & Server",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        400,
        200,
        NULL,
        NULL,
        hInstance,
        NULL
    );                                                    

    if (!hwndMain)   /* quit now if class registration failed */
        return 0;
    /*-------------initialize WinSock DLL------------*/
    nRet = WSAStartup(WS_VERSION_REQD, &stWSAData);
    /* WSAStartup() returns error value if failed (0 on success) */
    if (nRet != 0) {    
      WSAperror(nRet, "WSAStartup()", hInst);
      /* No sense continuing if we can't use WinSock */
    } else {
          
      ShowWindow(hwndMain, nCmdShow);   /* display our window */
      UpdateWindow(hwndMain);
                             
      while (GetMessage (&msg, NULL, 0, 0)) {  /* main message loop */
        TranslateMessage(&msg);
        DispatchMessage (&msg);
      }
    
      /*---------------release WinSock DLL--------------*/
      nRet = WSACleanup();
      if (nRet == SOCKET_ERROR)
        WSAperror(WSAGetLastError(), "WSACleanup()", hInst);
    }    

    /* Return resource explicitly */   
    UnregisterClass(szAppName, hInstance); 
        
    return msg.wParam;
} /* end WinMain() */

/*--------------------------------------------------------------------
 * Function: WndProc()
 *
 * Description: Main window procedure, handles asynch messages.
 */
LONG CALLBACK WndProc 
  (HWND hwnd,
   UINT msg,
   WPARAM wParam,
   LONG lParam)
{
    FARPROC lpfnProc;
    int nAddrSize = sizeof(SOCKADDR);
    WORD WSAEvent, WSAErr, wCmd;
    HMENU hMenu;
    int nRet;
   
    switch (msg) {
      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 */
          WSAperror(WSAErr,"FD_READ", hInst);
          /* fall-through to call reenabling function for this event */
        }
        switch (WSAEvent) {
		  case FD_READ:
            /* Receive the available data */
            nRet = recvfrom (hSock, (char FAR *)achInBuf, BUF_SIZE, 0,
              (struct sockaddr *) &stRmtName, &nAddrSize);

            /* Display error if receive failed (but don't repeat error
             *  if input message contained an error) */
            if ((nRet == SOCKET_ERROR) && (!WSAErr)) {
              WSAperror(WSAErr,"recvfrom()", hInst);
              break;
            }

            if (bRecieving) {
              /*--------------------------------------------- 
               * CLIENT: 
               * If we sent a request, display the response */
              achInBuf[nRet-2] = 0; /* remove CR/LF */
              /* Display the data received, and who it came from */
              wsprintf ((LPSTR)achOutBuf, "%s : %s",
                inet_ntoa(stRmtName.sin_addr), (LPSTR)achInBuf);
              MessageBox (hwnd, (LPSTR)achOutBuf, 
                "Daytime", MB_OK | MB_ICONASTERISK);
                
              /* Remove the timeout alert */
              KillTimer (hwnd, TIMEOUT_ID);
                
              /* Reset the socket state */
              bRecieving = FALSE;
            } else {
              /*---------------------------------------------- 
               * SERVER: 
               *  Send time to host we received request from */
              time_t stTime;
              time (&stTime);
              wsprintf (achOutBuf, "%s", ctime(&stTime));
              nRet = sendto (hSock, achOutBuf, strlen(achOutBuf), 0,
                  (LPSOCKADDR)&stRmtName, sizeof(SOCKADDR));
              if (nRet == SOCKET_ERROR)
                WSAperror(WSAGetLastError(), "sendto()", hInst);
            }
            break;
          default:
             break;
        } /* end switch(WSAEvent) */
        break;
      case WM_COMMAND:
#ifdef WIN32
        wCmd = LOWORD(wParam);
#else
        wCmd = (WORD)wParam;
#endif
        switch (wCmd) {
          case IDM_OPEN:
             /* If we already have a socket open, then close it first */
             if (hSock != INVALID_SOCKET) {
               nRet = closesocket(hSock);
               hSock = INVALID_SOCKET;
             }
             if (nRet == SOCKET_ERROR)               
               WSAperror(WSAGetLastError(), "socket()", hInst);
                
             /* Get a UDP socket */
             hSock = socket (AF_INET, SOCK_DGRAM, 0);
             if (hSock == INVALID_SOCKET)  {
               WSAperror(WSAGetLastError(), "socket()", hInst);
             } else {
               int ok = TRUE;
               
               /* Request async notification for data arrival. */
               nRet = WSAAsyncSelect(hSock, hwnd, WSA_ASYNC, FD_READ);
               if (nRet == SOCKET_ERROR) {
                 WSAperror(WSAGetLastError(), "WSAAsyncSelect()", hInst);
                 ok = FALSE;
               }
               
               if (ok) {  
                 /* Name the socket, so we can receive requests as a server */
                 stLclName.sin_family = PF_INET;
                 stLclName.sin_port   = htons(IPPORT_DAYTIME);
                 stLclName.sin_addr.s_addr = INADDR_ANY;
                 nRet = bind(hSock,(LPSOCKADDR)&stLclName, sizeof(struct sockaddr));  
                 if (nRet == SOCKET_ERROR) {
                   WSAperror(WSAGetLastError(), "bind()", hInst);
                   ok = FALSE;
                 }
               }
               
               if (ok) {
                 wsprintf ((LPSTR)achOutBuf, 
                 "Socket %d, named and registered for FD_READ", hSock);
                 MessageBox (hwnd, (LPSTR)achOutBuf, 
                   "Ready to Send or Receive", MB_OK | MB_ICONASTERISK);
               }
             }
           break;
             
           case IDM_SENDTO:
             /* Create Dialog box to prompt for destination host */
             lpfnProc = MakeProcInstance((FARPROC)DestDlgProc,hInst);
             nRet = DialogBox (hInst, "DESTINATIONDLG", hwndMain, lpfnProc);
             FreeProcInstance((FARPROC) lpfnProc);

             /* Check the destination address and resolve if if necessary */
             stRmtName.sin_addr.s_addr = GetAddr((LPSTR)szHost);
             if (stRmtName.sin_addr.s_addr == INADDR_ANY) { 
               if (nRet != -1)
                 /* Tell them they need to enter a host (unless they cancelled) */
                 MessageBox (hwnd, "Need a destination host to send to", 
                   "Can't connect!", MB_OK | MB_ICONASTERISK);
             } else {
               /* Set Timer so we can give up after waiting a while */
               if (!SetTimer (hwnd, TIMEOUT_ID, TIMEOUT_PERIOD, NULL))
                 MessageBox (hwnd, "SetTimer failed", "Error", MB_OK | MB_ICONASTERISK);
               
               /* Set socket state to indicate we're waiting for a response as a client */
               bRecieving = TRUE;
             
               /* send a dummy datagram to daytime port to request daytime response */
               stRmtName.sin_family = PF_INET;
               stRmtName.sin_port   = htons (IPPORT_DAYTIME);
               nRet = sendto(hSock, (char FAR *)achOutBuf, 1, 0, 
                             (LPSOCKADDR)&stRmtName, sizeof(SOCKADDR));
               if (nRet == SOCKET_ERROR)
                 WSAperror(WSAGetLastError(),"sendto()", hInst);
             }
             break;
            
           case IDM_BROADCAST:
             /* Call setsockopt() SO_BROADCAST to enable or disable */
             hMenu = GetMenu(hwnd);
             bBroadcast = !CheckMenuItem (hMenu, IDM_BROADCAST, 
                 (bBroadcast ? MF_UNCHECKED : MF_CHECKED));
             nRet = setsockopt(hSock, SOL_SOCKET, SO_BROADCAST, 
                 (LPSTR)&bBroadcast, sizeof(BOOL));
             if (nRet == SOCKET_ERROR)
               WSAperror (WSAGetLastError(), "setsockopt()", hInst); 
             break;
        
           case IDM_ABOUT:
             DialogBox (hInst, MAKEINTRESOURCE(IDD_ABOUT), hwnd, Dlg_About);
             break;
               
           case IDM_EXIT:
             PostMessage(hwnd, WM_CLOSE, 0, 0L);
             break;
                       
           default:
             return (DefWindowProc(hwnd, msg, wParam, lParam));
         } /* end case WM_COMMAND: */
         break;
           
      case WM_TIMER:
        /* Timeout occurred */
        bRecieving = FALSE;          /* reset state */
        KillTimer (hwnd, TIMEOUT_ID);  /* release timer */
        MessageBox (hwnd, "No response from daytime server", 
           "Timeout", MB_OK | MB_ICONASTERISK);
        break;

      case WM_QUERYENDSESSION:
      case WM_CLOSE:
        /* Close the socket before we leave. */
        if (!SendMessage(hwnd, WM_COMMAND, IDM_CLOSE, 1L))
          DestroyWindow(hwnd);
        /* Release Timer (if it's active) */
        if (bRecieving)
          KillTimer(hwndMain, TIMEOUT_ID);
        break;

      case WM_CREATE:
        /* center dialog box */
        CenterWnd (hwnd, NULL, TRUE);
        break;
 
      case WM_DESTROY:
        PostQuitMessage(0);
        break;
             
    default:
        return (DefWindowProc(hwnd, msg, wParam, lParam));   
  } /* end switch (msg) */

  return 0;
} /* end WndProc() */

/*---------------------------------------------------------------------
 * Function: DestDlgProc()
 *
 * Description: Prompt user for destination (hostname or address).
 */                                        
BOOL CALLBACK DestDlgProc (
  HWND hDlg,
  UINT msg,
  UINT wParam,
  LONG lParam)
{
  static int wRet, nOptName, nOptVal, nOptLen, nOptIDC, nLevel, WSAerr;
  static struct linger stLinger;
  
  lParam = lParam;  /* avoid warning */
  
   switch (msg) {
     case WM_INITDIALOG:
       /* set display values */
       SetDlgItemText (hDlg, IDC_DESTADDR, szHost);
       SetFocus (GetDlgItem (hDlg, IDC_DESTADDR));

       /* center dialog box */
       CenterWnd (hDlg, hwndMain, TRUE);

       return FALSE;
        
     case WM_COMMAND:
       switch (wParam) {

       case IDOK:
          GetDlgItemText (hDlg, IDC_DESTADDR, szHost, MAXHOSTNAME);
          EndDialog (hDlg, TRUE);
          
       case IDCANCEL:
          EndDialog (hDlg, -1);
          break;
     }
     return(TRUE);
   }        
   return(FALSE);
    
} /* end DestDlgProc() */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女精品一区二区| caoporm超碰国产精品| 亚洲愉拍自拍另类高清精品| 久久久久国产精品厨房| 日韩午夜小视频| 欧美少妇bbb| 色综合久久中文字幕综合网| 成人综合在线视频| 国产精品一区专区| 国产真实乱偷精品视频免| 日韩黄色小视频| 午夜精品久久久久| 亚洲成av人片在线| 亚洲v日本v欧美v久久精品| 一区二区三区小说| 亚洲码国产岛国毛片在线| 综合激情成人伊人| 亚洲视频中文字幕| 亚洲女性喷水在线观看一区| 中文字幕亚洲电影| 亚洲欧美成aⅴ人在线观看| 综合久久久久综合| 亚洲黄色免费网站| 一区二区三区蜜桃网| 亚洲日本在线视频观看| 亚洲欧美日韩国产综合在线| 亚洲欧美激情视频在线观看一区二区三区| 国产精品第四页| 久久久久久久综合| 国产欧美一区二区三区在线看蜜臀| 久久综合av免费| 欧美精品一区二区在线播放| 久久这里只有精品首页| 久久久久99精品一区| 欧美激情综合五月色丁香| 欧美激情综合网| 亚洲人成小说网站色在线 | 欧美午夜精品一区二区蜜桃| 欧美在线综合视频| 717成人午夜免费福利电影| 91精品国产91热久久久做人人| 欧美一区二区三区免费大片| 精品精品国产高清a毛片牛牛| 26uuu国产电影一区二区| 国产欧美日韩另类一区| 久久久久久久免费视频了| 国产精品久久久99| 亚洲日本在线a| 日韩福利电影在线| 美国十次了思思久久精品导航| 另类成人小视频在线| 韩国视频一区二区| 99在线精品观看| 欧美日韩一区国产| 欧美精品一区二区在线观看| 国产精品久久福利| 午夜伊人狠狠久久| 国产乱子伦视频一区二区三区| 99精品偷自拍| 欧美一区二区三区免费大片| 国产午夜精品久久久久久久 | 欧美三区在线视频| 亚洲精品在线观看网站| 久久久www成人免费无遮挡大片| 国产亚洲午夜高清国产拍精品| 国产片一区二区| 亚洲自拍都市欧美小说| 久久成人羞羞网站| 91免费看`日韩一区二区| 欧美丰满一区二区免费视频| 中文字幕精品—区二区四季| 午夜一区二区三区在线观看| 国产成人精品三级麻豆| 欧美日韩第一区日日骚| 国产欧美一区二区精品婷婷| 亚洲福利电影网| 懂色av噜噜一区二区三区av| 欧美疯狂性受xxxxx喷水图片| 国产欧美日韩三级| 美日韩一级片在线观看| 色噜噜狠狠色综合中国| 久久一区二区视频| 天天av天天翘天天综合网色鬼国产| 国产激情一区二区三区四区| 在线亚洲高清视频| 国产日韩欧美高清| 亚洲国产成人高清精品| 麻豆精品在线看| 99久久精品一区| 久久综合色婷婷| 日韩高清国产一区在线| 色妹子一区二区| 中文字幕高清一区| 国内精品久久久久影院一蜜桃| 欧美日韩国产综合一区二区 | 欧美日韩视频专区在线播放| 国产精品美女久久久久久2018 | 最新高清无码专区| 国产精品77777| 日韩欧美国产三级| 婷婷激情综合网| 在线观看不卡视频| 亚洲欧美日韩一区| www.亚洲人| 国产精品家庭影院| 国产·精品毛片| 国产亚洲精品精华液| 国产在线一区二区| 精品剧情v国产在线观看在线| 五月激情六月综合| 欧美日韩美女一区二区| 一区二区成人在线| 色老汉av一区二区三区| 久久欧美中文字幕| 美女性感视频久久| 日韩色视频在线观看| 日产欧产美韩系列久久99| 欧美挠脚心视频网站| 亚洲成人中文在线| 欧美日韩一区二区三区四区| 亚洲最大成人网4388xx| 日本高清免费不卡视频| 亚洲免费大片在线观看| 一本色道久久综合狠狠躁的推荐 | 99国产一区二区三精品乱码| 国产精品第一页第二页第三页| 激情丁香综合五月| 精品入口麻豆88视频| 韩国欧美国产一区| 久久综合色综合88| 成人综合在线网站| 亚洲视频资源在线| 欧美无乱码久久久免费午夜一区| 亚洲一区二三区| 欧美日韩一卡二卡| 日产国产高清一区二区三区| 欧美一区日本一区韩国一区| 另类人妖一区二区av| 精品国免费一区二区三区| 国产激情偷乱视频一区二区三区| 亚洲精品一区二区三区香蕉| 狠狠色综合色综合网络| 国产欧美日韩视频在线观看| 91视频在线观看| 亚洲国产aⅴ天堂久久| 欧美一区二区三区性视频| 激情都市一区二区| 国产精品久久久久一区二区三区共| 91年精品国产| 亚洲mv在线观看| 日韩一区二区免费高清| 丁香婷婷综合色啪| 一区二区三区在线播| 日韩一区二区三区三四区视频在线观看 | 亚洲欧洲韩国日本视频| 色激情天天射综合网| 日韩经典中文字幕一区| 精品三级av在线| eeuss鲁一区二区三区| 亚洲一二三专区| 亚洲精品一区二区三区香蕉| 99re视频这里只有精品| 亚洲婷婷综合色高清在线| 91精品国产综合久久久蜜臀粉嫩 | 欧美一区二区国产| 国产suv精品一区二区6| 日本欧洲一区二区| 最新不卡av在线| 久久先锋影音av| 3d成人动漫网站| 色综合咪咪久久| 国产不卡视频一区| 男女男精品视频| 亚洲男人天堂av网| 国产亚洲1区2区3区| 91精选在线观看| 在线观看91精品国产入口| 成人午夜私人影院| 韩国视频一区二区| 日韩av网站在线观看| 亚洲午夜在线视频| 亚洲乱码一区二区三区在线观看| 久久久精品国产免费观看同学| 欧美一级一区二区| 欧美中文字幕不卡| 91视频你懂的| av中文字幕在线不卡| 国产麻豆成人传媒免费观看| 日本午夜精品视频在线观看| 亚洲午夜精品网| 一区二区三区欧美| 亚洲蜜臀av乱码久久精品| 国产精品久久久久天堂| 日本一区二区三区在线不卡| 欧美电影精品一区二区| 日韩一区二区在线观看| 欧美精品三级在线观看| 欧美男男青年gay1069videost| 在线视频综合导航| 欧美最新大片在线看|