ch563Q 直接拔下網(wǎng)線 tcp狀態(tài)連接狀態(tài)不變

現(xiàn)在ch563Q做服務(wù)端,在已連接客戶端時(shí)直接拔下網(wǎng)線 tcp狀態(tài)連接狀態(tài)不變

設(shè)計(jì)的是有個(gè)指示燈根據(jù)此函數(shù)返回狀態(tài)點(diǎn)亮或熄滅來(lái)表示是否有客戶端連接,正常連接會(huì)點(diǎn)亮,上位機(jī)軟件關(guān)閉會(huì)熄滅,但直接拔下網(wǎng)線后此指示燈顯示TCP客戶端還一直存在,如何做到拔下網(wǎng)線自動(dòng)斷開(kāi)TCP客戶端的連接,并可以關(guān)閉這個(gè)指示燈,CH9121有引腳是可以的。但563這個(gè)不知道怎么搞。

unsigned char socket_open(void)

{

unsigned char i;

for (i = 1; i < CH563NET_MAX_SOCKET_NUM; i++)

{

if ((SocketInf[i].ScokStatus & 0xff) == SOCK_STAT_OPEN)

return 1;

}

return 0;

}



熱門(mén)產(chǎn)品 : USB3.0 HUB控制器:CH634

您好,這個(gè)功能可以通過(guò),PHY改變中斷來(lái)實(shí)現(xiàn),產(chǎn)生PHY改變中斷時(shí),判斷是連接還是斷開(kāi),來(lái)控制一顆LED燈的亮滅。在下面函數(shù)里面增加。

? if(initstat & GINT_STAT_PHY_CHANGE)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* PHY改變中斷 */

? ?{

? ? ? ?i = CH563NET_GetPHYStatus();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* 獲取PHY狀態(tài) */

? ?}



這也解決不了呀,拔掉等會(huì)再插上tcp狀態(tài)依舊,但實(shí)際已經(jīng)斷了,做TCP服務(wù)端多長(zhǎng)時(shí)間超時(shí),會(huì)自動(dòng)斷開(kāi)嗎?



再有若不釋放資源,鏈接幾個(gè)后滿了,釋放不了,那再也連不上了


實(shí)際上CH9121和CH563是完全不同的芯片,CH563作為一個(gè)單片機(jī),是沒(méi)有類似CH9121的TCPCS引腳來(lái)指示TCP連接裝態(tài)的。你拔掉網(wǎng)線的操作就是物理層斷開(kāi),在物理層斷開(kāi)之后,你有必要將所有的socket全部關(guān)閉,即在2樓提到的PHY轉(zhuǎn)態(tài)改變中斷里,如果確定是物理層斷開(kāi)了,那么你需要檢測(cè)目前有多少個(gè)socket,然后依次全部關(guān)閉。在CH563再次報(bào)PHY狀態(tài)改變中斷后,確定是物理層連接上了,LINK速率協(xié)商成功,那么你再根據(jù)自己的業(yè)務(wù)邏輯,按照需求,一個(gè)一個(gè)重新打開(kāi)socket。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频