0
我的問題是我可以收到下面的代碼的一半的消息? 如果我想發送如下消息:「MESSAGE \ n」 發生這種情況如果頻道緩慢,我只收到M字符?通過ssl通道接收一半的消息c
和部分代碼:
fd.fd = c->socket;
fd.events = POLLIN;
bzero(received, sizeof(received));
result = poll(&fd, 1, time);
if(result > 0)
{
i = SSL_read ((SSL *)c->sslHandle, (char*)received, INCOMING_BUFFERSIZE);
result = SSL_get_error(c->sslHandle, i);
...
}
因爲我雖然我什麼也得不到,直到沒有收到「\ n」個符號。
如何確保我僅在\ n結束時接受消息。
感謝幫助,
塔馬斯
編輯:我使用的版本是1.0.1c
我閱讀說明書的手冊: 數據在記錄中接收(SSLv3/TLSv1的最大記錄大小爲16kB)。只有當一個記錄被完全接收後,它才能被處理(解密和完整性檢查)。因此,我想如果我寫了一條消息,比如「MESSAGE \ n」,我必須得到這個或者什麼都不收。這是真的嗎? – Tomi
@Tomi是關於SSL/TLS記錄,而不是關於您的消息。而SSL層不瞭解數據流的分區。 –