Linux 網路程式設計常用函式詳解

2021-07-03 18:30:20 字數 1522 閱讀 6651

sendto(經socket傳送資料)

相關函式

send , sendmsg,recv , recvfrom , socket

表頭檔案

#include < sys/types.h >

#include < sys/socket.h >

定義函式

int sendto ( int s , const void * msg, int len, unsigned int flags, const 

struct sockaddr * to , int tolen ) ;

函式說明

sendto() 用來將資料由指定的socket傳給對方主機。引數s為已建好連線的socket,如果利用udp協議則不需經過連線操作。引數msg指向欲連線的資料內容,引數flags 一般設0,詳細描述請參考send()。引數to用來指定欲傳送的網路位址,結構sockaddr請參考bind()。引數tolen為sockaddr的結果長度。

返回值成功則返回實際傳送出去的字元數,失敗返回-1,錯誤原因存於errno 中。

錯誤**

ebadf 引數s非法的socket處理**。

efault 引數中有一指標指向無法訪問的記憶體空間。

wnotsock canshu s為一檔案描述詞,非socket。

eintr 被訊號所中斷。

eagain 此動作會令程序阻斷,但引數s的soket為補課阻斷的。

enobufs 系統的緩衝記憶體不足。

einval 傳給系統呼叫的引數不正確。

recvfrom(經socket接收資料)

相關函式

recv,recvmsg,send,sendto,socket

表頭檔案

#include

#include

定義函式

int recvfrom(int s,void *buf,int len,unsigned int flags ,struct sockaddr *from ,int *fromlen);

函式說明

recv()用來接收遠端主機經指定的socket 傳來的資料,並把資料存到由引數buf 指向的記憶體空間,引數len 為可接收資料的最大長度。引數flags 一般設0,其他數值定義請參考recv()。引數from用來指定欲傳送的網路位址,結構sockaddr 請參考bind()。引數fromlen為sockaddr的結構長度。

返回值成功則返回接收到的字元數,失敗則返回-1,錯誤原因存於errno中。

錯誤**

ebadf 引數s非合法的socket處理**

efault 引數中有一指標指向無法訪問的記憶體空間。

enotsock 引數s為一檔案描述詞,非socket。

eintr 被訊號所中斷。

eagain 此動作會令程序阻斷,但引數s的socket為不可阻斷。

enobufs 系統的緩衝記憶體不足

enomem 核心記憶體不足

einval 傳給系統呼叫的引數不正確。

linux網路程式設計常用函式詳解與例項

常用的網路命令 netstat telnet telnet是乙個用來遠端控制的程式,但是我們完全可以用這個程式來除錯我們的服務端程式的.比如我們的伺服器程式在監聽8888埠,我們可以用telnet localhost 8888來檢視服務端的狀況.網路函式描述和例項 int socket int do...

Linux網路程式設計常用函式

計算機資料儲存有兩種位元組優先順序 高位位元組優先和低位位元組優先。internet上資料以高位位元組優先順 序在網路上傳輸,所以對於在內部是以低位位元組優先方式儲存資料的機器,在internet上傳輸資料時就需 要進行轉換。我們要討論的第乙個結構型別是 struct sockaddr,該型別是用來...

unix網路程式設計常用函式詳解

基本tcp客戶 伺服器程式的套介面函式如下圖 1 socket函式 原型 include int socket int family,int type,int protocol 返回值 非負描述符 成功,1 出錯 作用 指定期望的通訊協議介面 tcp或udp或unix域位元組協議等 family 指...