在以太网中,有如下的处理函数:
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);
}
}
这里面有一个i作为了socket传递到了:
WCHNET_HandleSockInt(i, socketint);
而最开始创建socket的时候,也传递进去了一个socket:
i = WCHNET_SocketCreat(&SocketIdForListen, &TmpSocketInf);
printf("SocketIdForListen %d\r\n", SocketIdForListen);
mStopIfError(i);
i = WCHNET_SocketListen(SocketIdForListen);
但是似乎,这两个socket没有关系?
如果我创建了多个socket, 中断里面根据i来获取的Socket, 该如何与创建的socket对应上呢?
主要是为了不同的socket(例如创建了两个TCP socket, s1和s2), 我如何在中断中区分是s1还是s2的中断呢?