Socket輔助函式


本教學介紹socket程式設計時使用的所有輔助函式,及其他輔助函式的埠和服務,元網路位元組順序的教學。

write 函式:

write函式嘗試寫入n位元組位元組從緩衝區buf中相關的檔案開啟檔案描述符,fildes指向。

也可以使用send()函式將資料傳送到另一個進程。

#include <unistd.h>

int write(int fildes, const void *buf, int nbyte);

成功完成後,write()返回fildes的檔案實際寫入的位元組數。這個數位是永遠不會大於nbyte。否則,則返回-1

引數:

  • fildes: 是socket函式返回一個通訊端描述符。

  • buf 要傳送的資料是一個指標。

  • nbyte 是要寫入的位元組數。如果nbyte是0,write()將返回0,如果該檔案是一個普通檔案,沒有其他的結果,否則,結果是不確定的。

read 函式:

讀函式試圖開啟檔案描述符,fildes的相關的檔案,到緩衝區buf指向讀nbyte位元組。

還可以使用的recv()函式來讀取資料到另一個進程。

#include <unistd.h>

int read(int fildes, const void *buf, int nbyte);

成功完成後,write()返回fildes檔案實際寫入的位元組數。這個數位是永遠不會大於nbyte。否則,則返回-1。

引數:

  • fildes: 是socket函式返回一個通訊端描述符。

  • buf 緩衝區讀取資訊..

  • nbyte 是要讀取的位元組數。

fork 函式:

fork函式建立一個新的進程。新進程稱為子進程呼叫進程(父進程)的完全相同的副本。子進程繼承父進程的許多屬性。

#include <sys/types.h>
#include <unistd.h>

int fork(void);

成功完成後,fork()返回0到子進程和父進程返回子進程的進程ID。否則返回-1給父進程,沒有子進程被建立並設定errno以指示錯誤。

引數:

  • void: 不需要任何引數是必需。

bzero 函式:

bzero 函式的地方nbyte空位元組的字串s。這個函式將被用於設定具有空值的所有通訊端結構。

 void bzero(void *s, int nbyte);

此函式不返回任何東西(無返回值)。

引數:

  • s: 指定字串必須用空位元組填充。這將是一個指向通訊端的結構變數

  • nbyte: 指定使用null值填充位元組的數量。這將是通訊端結構的大小。

bcmp 函式:

bcmp 函式比較位元組字串s1的針對位元組字串s2。兩個字串都被假定為nbyte位元組長。

int bcmp(const void *s1, const void *s2, int nbyte);

此功能如果兩個字串相同,則返回0,否則為1。 nbyte為0時bcmp()函式總是返回0 。

引數:

  • s1: 指定要比較的第一個字串。

  • s2: 指定要比較的第二個字串。

  • nbyte: 指定的位元組數進行比較。

bcopy 函式:

bcopy 函式複製nbyte 個位元組字串s1到字串s2。正確處理重疊的字串。

void bcopy(const void *s1, void *s2, int nbyte);

此函式不返回任何值。

引數:

  • s1: 指定的源字串。

  • s2: 指定目標字串。

  • nbyte: 指定要複製的位元組數。

memset 函式:

memset函式也可以用來設定結構變數,並以同樣的方式作為 bzero.

void *memset(void *s, int c, int nbyte);

這個函式返回一個void指標,其實設定記憶體的指標,需要相應地釋放。

引數:

  • s: 指定源設定。

  • c: 指定要設定的字元nbyte地方..

  • nbyte: 指定的位元組數進行設定。