TI 您好:
我這遇到了一個問題如下
我的CC3200當client 用TLS TCP socket 建立一個 連線等待server 發訊息下來,此連線稱為A。
另外建TLS TCP socket 回報狀態給 server。此連線稱為B。A、B 的RECV TIMEOUT為30秒
平時使用A,B都可正常收發。
但有時候會發生A收不到server發的訊息,但是B仍然可以發訊息給server並收到server的response。
目前發生狀況時從錄到的server log來看,server連續發兩個Data給CC3200,CC3200可以收到其中一個,但是另一個要過很久的時間才會收到。
有時2小時,有時需要更長的時間才會收到。在這期間server仍然可以send但是CC3200這端recv都只有EAGAIN(因為30秒timeout)。
不知道這第二個Data,是卡在socket 哪一端?
後來有做一個實驗,在發生狀況時,將AP ROUTER的網路線拔除。大約4分鐘左右CC3200 將socket斷線(猜測由keep alive造成),在recv收到0之前還收到了第二個Data。這樣能確認這第二個Data是在CC3200的receive buffer內嗎? 如果是那位時麼在發生狀況時recv沒辦法將第二個Data收進來呢?
這問題困擾已久,還請幫忙,謝謝。
eric tsai1:
請問有誰有甚麼想法嗎?
Liang Zhou8:
sorry , I can't help you.I have no idea.