我正在研究基於UDP的文件共享程序。讓我在解釋問題之前發佈一些示例代碼。C++語法問題
while (true)
{
Data toRecv;
int bytesRead = recvfrom(s->_UPDsock, (char*)&toRecv, sizeof(toRecv), 0,(SOCKADDR*)&remoteAddress, &remoteAddresslength);
if(bytesRead > 0)
{
string temp(toRecv.chunk,(bytesRead-sizeof(int)));
if(!checker)
{
//total packet amount.
totalChunkAmount = toRecv.ACK;
checker = true;
}
}
}
正如你可以看到一行「13」我用我從UDP的recvFrom
功能得到了變量初始化totalChunkAmount
。我只需要初始化該值,這就是爲什麼我在bool
if()
檢查中使用它。初始化後,我將bool
的值翻轉爲true
,所以不會再次初始化。有沒有其他方法可以達到相同的結果,但不使用醜陋的bool
切換方法。
請注意,這可能是一個壞主意。 UDP數據包可能會丟失或無序到達。你應該使用TCP代替。 –
@比利:是的,這可能是非常真實的,但他的問題並沒有真正與UDP或TCP有關...... – Mark
@Mark:是的,這就是爲什麼它是一個評論,而不是一個答案:) –