CH579的TCP服务器端问题

请问下技术人员:CH579建立TCP服务器端,打开监听后,当有链接建立成功时,怎么知道建立的这个socket是监听的这个服务器端的链接?

void CH57xNET_HandleSockInt(UINT8 sockeid,UINT8 initstat)函数只给出了socket值,却没有函数可以反查对应的SOCK_INF的信息。

说明文档中有:如果应用软件建立多个服务器,可以通过查询 socket 信息列表中的源端口来确定此连接是哪个服务器的连接 。


请问这个查询socket信息列表怎么查询?

CH579监听到客户端,会主动分配一个socket,您要查socket信息可以把sockinf信息打印出来

typedef struct _SCOK_INF
{
    UINT32 IntStatus;                                                         
    UINT32 SockIndex;                                                           
    UINT32 RecvStartPoint;                                              
    UINT32 RecvBufLen;                                                   
    UINT32 RecvCurPoint;                                                     
    UINT32 RecvReadPoint;                                                  
    UINT32 RecvRemLen;                                                    
    UINT32 ProtoType;                                                         
    UINT32 ScokStatus;                                                     
    UINT32 DesPort;                                                           
    UINT32 SourPort;                                                            
    UINT8  IPAddr[4];                                                 
    void *Resv1;                                                         
    void *Resv2;                                                     
 // void (*RecvCallBack)(struct _SCOK_INF *socinf,UINT32 ipaddr,UINT16 port,UINT8 *buf,UINT32 len);
    void (*AppCallBack)(struct _SCOK_INF *,UINT32 ,UINT16 ,UINT8 *,UINT32 );

}SOCK_INF;

 比如连如socket3,您就把SOCK_INF sockinf[3].DesPort获取出来,与自己创建的服务器端口对应比较,就知道客户端连接的哪个服务器了。



只有登录才能回复,可以选择微信账号登录