Windows網路程式設計之send 函式

2021-10-03 23:42:27 字數 1164 閱讀 1789

一、作用

向目標傳送資料,本質上就是將資料複製貼上進系統的協議傳送緩衝區,計算機伺機傳送出去

二、句法

int wsaapi send

( socket s,

const

char

*buf,

int len,

int flags

);

s

標識已連線套接字的描述符。

buf

指向包含要傳輸的資料的緩衝區的指標。

len

buf引數指向的緩衝區中資料的長度(以位元組為單位)。

flags

一組標誌,指定進行呼叫的方式。通過將按位或運算子與以下任何值一起使用來構造此引數。

示例
send

(socketclient,

"abcd"

,sizeof

("abcd"),

0)

三、引數

引數1目標的socket,每個客戶端對應唯一的socket

引數2給對方傳送的位元組串

這個一般不超過1500個位元組,也是網路傳輸的最大單元,也就是客戶端發過來的資料,是協議規定的,這個資料也是根據很多情況總結出來的最優值

1500的相關知識文末進一步說明

引數3要傳送的位元組個數,決定傳送的個數,如果比引數2中的要傳送的位元組數短,則只傳送引數3決定的個數,後面的就不管了,大了就傳送過多的位元組,記憶體可能洩漏

一般與引數2一樣大小

引數4一般直接寫0就行

其他:msg_oob:傳輸一段資料,再外帶乙個額外的特殊資料,但不建議使用,一般忽略就行

msg_dontroute :指定資料不應受路由限制,windows套接字服務提供。程式可以選擇忽略

四、返回值

if

(socket_error ==

send

(socketclient,

"abcd"

,sizeof

("abcd"),

0))

五、關於1500

windows網路程式設計之Select模型基礎知識

網路程式設計之select模型 一.設計思想 利用select函式,判斷套接字上是否存在資料,或者能否向乙個套接字寫入資料。目的是防止應用程式在套接字處於鎖定模式時,呼叫recv 或send 從沒有資料的套接字上接收資料,被迫進入阻塞狀態。二.select函式 2.1 select函式 int se...

windows網路程式設計之select模型 改進

最近重溫一下windows的網路模型 windows網路與通訊程式設計 發現大多數的select模型都會做乙個遍歷,然後處理對應的資料。裡面提到了一點 2 將fdsocket 集合的拷貝fdread 傳遞給select 函式,當有事件發生時,select 函式移除fdread 集合中沒有未決i o ...

網路程式設計 之 網路基礎

網路程式設計 1.乙個程式如何在網路上找到另乙個程式?首先,程式必須要啟動,其次,必須有這台機器位址,我們都知道我們人的位址大概就是國家 省 市 區 街道 樓 門牌號這樣子。那麼每一台聯網的機器在網路上也有自己的位址,他們位址是怎麼表示的呢?就是使用一串數字來表示的,例如 100.4.5.6什麼是i...