前言 基本函式

2021-04-29 15:05:42 字數 2906 閱讀 2007

wsa是windows socket api簡稱

1   在delphi用這些api時,應先先明

wsastartup();//初始

wsacleanup;//登出

後面介紹一些簡單函式的使用

我也是學了再寫,說錯的地方指明,這既是自己的筆記

也是大家的參考

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函式

把好象"***.***.***.***"的10進製的ip位址轉換為32位整數表示方法

[宣告]

unsigned long inet_addr ( const char far *cp );

[引數]

cp - 指向用"***.***.***.***"的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

Autofac的基本使用 1 前言

autofac的基本使用 目錄 本例中使用的是建構函式注入。屬性注入方式的配置與其差別不大,使用的例項使用建構函式或屬性中進行例項化。最後在註冊呼叫者後面加上.propertiesautowired 使用的autofac均使用nuget安裝。install package autofac versi...

「派生」的前言

前一篇,是 封裝 的尾巴 點我 這一篇,是 派生 的前奏 突然有一種七八月份的感覺 8.1.派生 型別和型別之間可以有很多關係,其中 派生 是最重要和最基礎的一種關係。這裡有一道小學語文題。輕鬆一刻 做小學題,學型別的派生關係 請照著1和 2中三個詞語的關係,從a b c d中選出乙個你認為合適的詞...

開通部落格前言

筆者準備用jbpm作為工作流的引擎,然後進一步進行封裝,最後準備將 進行開源特開通csdn的部落格和大家一起交流,相互學習,共同促進 是以jbpm 作為核心引擎,實現的輕量級的快速流程開發平台,在 jbpm 的基礎上定製開發了一系列的擴充套件元件,使得 jbpm 的使用更為簡單。這些擴充套件元件包括...