一、作用
向目標傳送資料,本質上就是將資料複製貼上進系統的協議傳送緩衝區,計算機伺機傳送出去
二、句法
int wsaapi send
( socket s,
const
char
*buf,
int len,
int flags
);
s標識已連線套接字的描述符。
buf指向包含要傳輸的資料的緩衝區的指標。
lenbuf引數指向的緩衝區中資料的長度(以位元組為單位)。
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...