在以太網(wǎng)中,有如下的處理函數(shù):
? ? if (intstat & GINT_STAT_SOCKET) {? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//socket related interrupt
? ? ? ? for (i = 0; i < WCHNET_MAX_SOCKET_NUM; i++) {
? ? ? ? ? ? socketint = WCHNET_GetSocketInt(i);
? ? ? ? ? ? if (socketint)
? ? ? ? ? ? ? ? WCHNET_HandleSockInt(i, socketint);
? ? ? ? }
? ? }
這里面有一個(gè)i作為了socket傳遞到了:
WCHNET_HandleSockInt(i, socketint);
而最開(kāi)始創(chuàng)建socket的時(shí)候,也傳遞進(jìn)去了一個(gè)socket:
? ? i = WCHNET_SocketCreat(&SocketIdForListen, &TmpSocketInf);
? ? printf("SocketIdForListen %d\r\n", SocketIdForListen);
? ? mStopIfError(i);
? ? i = WCHNET_SocketListen(SocketIdForListen);
但是似乎,這兩個(gè)socket沒(méi)有關(guān)系?
如果我創(chuàng)建了多個(gè)socket, 中斷里面根據(jù)i來(lái)獲取的Socket, 該如何與創(chuàng)建的socket對(duì)應(yīng)上呢?
主要是為了不同的socket(例如創(chuàng)建了兩個(gè)TCP socket, s1和s2), 我如何在中斷中區(qū)分是s1還是s2的中斷呢?