程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 透析ICMP協議(2):Windows Socket 簡介

透析ICMP協議(2):Windows Socket 簡介

編輯:vc教程

  簡介:

  -------

  Windows 的Socket函數有許多, 我沒有做詳細介紹, 這裡的函數都是簡要說明其用途, 詳細用法請參考MSDN.

  這裡的主要目的是為了後面的三個應用服務.

  函數說明:

  ---------

  WSAStartup函數

  初始化Winsock

  [聲明]

  int WSAStarup(WORD wVersionRequested,LPWSADATA lpWSAData);

  [參數]

  wVersionRequested - 要求使用Winsock的最低版本號

  lpWSAData - Winsock的詳細資料

  [返回值]

  當函數成功調用時返回0

  失敗時返回非0的值

  ---

  socket函數

  用於生成socket(soket Descriptor)

  [聲明]

  SOCKET socket(int af,int type,int protocol);

  [參數]

  af - 地址家族(通常使用:AF_INET)

  type - socket的種類

  SOCK_STREAM : 用於TCP協議

  SOCK_DGRAM : 用於UDP協議

  protocol - 所使用的協議

  [返回值]

  當函數成功調用時返回一個新的SOCKET(Socket Descriptor)

  失敗時返回INVALID_SOCKET.

  ---

  inet_addr函數

  地址轉換, 把"A.B.C.D"的IP地址轉換為32位長整數

  [聲明]

  unsigned long inet_addr ( const char FAR *cp );

  [參數]

  cp - 指向IP地址字符串的指針

  [返回值]

  當函數成功調用時返回用32位整數表示的IP地址

  失敗時返回INADDR_NONE.

  ---

  gethostbyname函數

  從主機名獲取主機信息.

  [聲明]

  struct hostent FAR * gethostbyname ( const char FAR *name );

  [參數]

  name - 指向主機名字符串的指針

  [返回值]

  當函數成功調用時返回主機信息

  失敗時返回NULL(空值)

  ---

  recv函數

  利用Socket進行接受數據.

  [聲明]

  int recv ( SOCKET s , char FAR *buf , int len , int flags );

  [參數]

  s - 指向用Socket函數生成的Socket Descriptor

  buf - 接受數據的緩沖區(數組)的指針

  len - 緩沖區的大小

  flag - 調用方式(MSG_PEEK 或 MSG_OOB)

  [返回值]

  成功時返回收到的字節數.

  如果連接被中斷則返回0

  失敗時返回 SOCKET_ERROR

  ---

  sendto函數

  發送數據.

  [聲明]

  int sendto ( SOCKET s , const char FAR *buf , int len , int flags , const struct sockaddr FAR *to , int token );

  [參數]

  s - 指向用Socket函數生成的Socket Descriptor

  buf - 接受數據的緩沖區(數組)的指針

  len - 緩沖區的大小

  flag - 調用方式(MSG_DONTROUTE , MSG_OOB)

  to - 指向發送方SOCKET地址的指針

  token - 發送方SOCKET地址的大小

  [返回值]

  成功時返回已經發送的字節數.

  失敗時返回SOCKET_ERROR

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved