亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您好,我想請教一下關于sendto()和recvfrom()兩個函數參數的疑?

您好,我想請教一下關于sendto()和recvfrom()兩個函數參數的疑?

慕沐林林 2021-11-03 11:07:04
int sendto(SOCKET S,const char FAR *buf,int len,int flags,const char FAR *to,int tolen) int recvfrom(SOCKET S,const char FAR *buf,int len,int flags,const char FAR *from,int * fromlen)疑問一:兩個函數中的len是指緩沖區大小還是程序員要求的一次收發的字節數。如緩沖區大小為buf[1024],len=40行不行。(主要是以會看到說是發送字節數,一會又是緩沖區大小,把我搞暈了?。。┮蓡柖旱诹鶄€參數拿來干嘛?我知道sendto中to是指明目的端的套接字地址,tolen是套接字地址的大?。ㄓ械牡胤接终f是目的端接收緩沖區大小,混亂),但tolen拿來有什么用?還有為什么recvfrom中第六個參數還要用指針,跟sendto還不一樣??
查看完整描述

1 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

1、len是指緩沖區大小,就是第二個參數的長度。
Length of the data in buf, in bytes.
2、sendto中的是目的套接字結構的尺寸,只是標識一下to的結構所占的長度,
主要是因為弱類型char*需要長度,目標并不關心必須是否sockaddr_in結構。
指針的形式,是為了獲取目標套接字地址的尺寸,也是為了能夠進行弱類型解析。
協議本身是不限定必須使用sockaddr_in結構的,但是windows編程中一般都是用sockaddr_in

查看完整回答
反對 回復 2021-11-09
  • 1 回答
  • 0 關注
  • 292 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號