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

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

您好,請問在C++下recvfrom該如何使用?怎么操作呢?

您好,請問在C++下recvfrom該如何使用?怎么操作呢?

C++ C
牛魔王的故事 2021-11-04 07:07:35
c++一般不會這樣寫(struct sockaddr*)& ,這是C風格寫法,這樣在VS2005以上編譯器上會報錯,C++直接用( sockaddr*)。 我的確是在VS2005編譯器運行的,可是我把(struct spcladdr*)&from 換成 (spcladdr*)from 這樣運行還是報錯 有3個錯誤:1>d:\my program\netmedia\udpserver1\udpserver.cpp(40) : error C2065: 'spcladdr' : undeclared identifier1>d:\my program\netmedia\udpserver1\udpserver.cpp(40) : error C2059: syntax error : ')'1>d:\my program\netmedia\udpserver1\udpserver.cpp(42) : error C2143: syntax error : missing ';' before '{' 源代碼是這樣的:if(recvfrom(socket1,buffer,sizeof buffer,0,(struct spcladdr*)&from,&fromlen) !=SOCKET_ERROR)
查看完整描述

2 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

你這個,spcladdr 編譯器不認識,所以出錯。
一般是沒有定義的結構,少include了文件。
那么寫和C/C++沒有太多關系,關鍵是后面的那個東西是結構體,不是class就對了。
要是class,只要你是專業的,什么都無所謂。

查看完整回答
反對 回復 2021-11-09
?
料青山看我應如是

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

最近測試程序中一直在用,給你點代碼片段
(1) sockaddr_in from;
int from_len = sizeof(from);
int rc = recvfrom(sock, buf, 65536, 0, (sockaddr*)&from, &from_len);
if (rc > 0)
{
//處理收到的數據
}
(2)
memset(buf, 0, BUF_SIZE);
int rc = recvfrom(pThis->m_udpSocket, buf, BUF_SIZE, 0, (sockaddr*)&from, &from_len);
if (rc > 0)
{
}



查看完整回答
反對 回復 2021-11-09
  • 2 回答
  • 0 關注
  • 299 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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