程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> winsock函數簡介

winsock函數簡介

編輯:Delphi


1、WSAStartup函數
用於初始化Winsock
[聲明]
int WSAStarup(WORD wVersionRequested,LPWSADATA lpWSAData);
[參數]
wVersionRequested - 要求使用Winsock的最低版本號
lpWSAData - Winsock的詳細資料
[返回值]
當函數成功調用時返回0
失敗時返回非0的值

2、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.

3、inet_addr函數
把好象"xxx.xxx.xxx.xxx"的10進制的IP地址轉換為32位整數表示方法
[聲明]
unsigned long inet_addr ( const char FAR *cp );
[參數]
cp - 指向用"xxx.xxx.xxx.xxx"的10進制來表示的IP地址字符串的指針
[返回值]
當函數成功調用時返回用32位整數表示的IP地址(按網絡字節排列順序)
失敗時返回INADDR_NONE.

4、gethostbyname函數
可以從主機名獲取主機資料.
[聲明]
struct hostent FAR * gethostbyname ( const char FAR *name );
[參數]
name - 指向主機名字符串的指針
[返回值]
當函數成功調用時返回主機信息
失敗時返回NULL(空值)

5、Bind函數
指定本地IP地址所使用的端口號時候使用
[聲明]
int bind ( SOCKET s , const struct sockaddr FAR *addr , int namelen );
[參數]
s - 指向用Socket函數生成的Socket Descriptor
addr - 指向Socket地址的指針
namelen - 該地址的長度.
[返回值]
當函數成功調用時返回0
調用失敗時返回 SOCKET_ERROR

6、connect函數
用於與服務器建立連接,發出連接請求,必須在參數中指定服務器的IP地址和端口號
[聲明]
int connect (SOCKET s , const struct sockaddr FAR *name , int namelen );
[參數]
s - 指向用Socket函數生成的Socket Descriptor
name - 指向服務器地址的指針
namelen - 該地址的長度.
[返回值]
當函數成功調用時返回0
調用失敗時返回 SOCKET_ERROR

7、select函數
可以用於調查一個或多個SOCKET的狀態.
[聲明]
int select ( int nfds , fd_set FAR *readfds , fd_set FAR *writefds , fd_set FAR *exceptfds , const struct timeval FAR *timeout );
[參數]
nfds - 在WINDOWS SOCKET API 中該參數可以忽略,通常賦予NILL值
readfds - 由於接受的SOCKET設備的指針
writefds - 用於發送數據的SOCKET設備的指針
exceptfds - 檢查錯誤的狀態
timeout - 超時設定
[返回值]
返回大於0的值時,表示與條件相符的SOCKET數
返回0表示超時
失敗時返回SOCKET_ERROR

8、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

9、sendto函數
利用Socket進行發送數據.
[聲明]
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