socket程式設計的 sendto 函式

2021-06-26 08:04:57 字數 1086 閱讀 4645

相關函式:send, sendmsg, recv, recvfrom, socket

標頭檔案:#include #include

定義函式: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 中.

錯誤**:

1、ebadf 引數s 非法的socket 處理**.

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

3、wnotsock canshu s 為一檔案描述詞, 非socket.

4、eintr 被訊號所中斷.

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

6、enobufs 系統的緩衝記憶體不足.

7、einval 傳給系統呼叫的引數不正確.

範例#include

#include

#include

#include

#define port 2345 /*使用的port */

main()

//填寫sockaddr_in 結構

bzero(&addr, sizeof(addr));

addr.sin_family = af_inet;

addr.sin_port = htons(port);

addr.sin_addr = hton1(inaddr_any);

if(bind(sockfd, &addr, sizeof(addr)) < 0)

while(1)

}執行:請參考recvfrom()

socket程式設計

一直以為serversocket accept之後客戶端才能發資訊,實驗後得出如下結論 1 serversocket沒有accept時,client是可以傳送資訊到server端的。2 serversocket accept之後,正在處理訊息時,client也是可以傳送資訊到server端。如果se...

Socket程式設計

對tcp ip udp socket程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission cont...

socket程式設計

建立socket 建立乙個 socket,它可用於在基於 tcp ip 的網路 如 internet 上通訊。socket s new socket addressfamily.internetwork,sockettype.stream,protocoltype.tcp 若要使用 udp 而不是 ...