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