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: 指定的字節數進行設置。