CH32F208 做TCP SERVER 重置IP问题

CH32F208 做TCP SERVER 重置IP问题。

在PHY已经连接上,mcu作为TCP SERVER, 已经用某IP地址初始化过了,在已经被主机连接或者不连接的情况下,

假如更改MCU的IP地址,主机来连接改过地址后的SERVER,一直连不上,但是只要拔插一下网线就可以了,这个情况软件怎么处理达到 不重启芯片自动能被主机重连上?

补充一下,改过以后,重新初始化了一下,执行下面代码:

WCHNET_GetMacAddr(MACAddr);                                   //get the chip MAC address

    i = ETH_LibInit(IPAddr, GWIPAddr, IPMask, MACAddr);           //Ethernet library initialize

    mStopIfError(i);

if (i == WCHNET_ERR_SUCCESS)

{

//        printf("WCHNET_LibInit Success\r\n");

#if KEEPALIVE_ENABLE                                               //Configure keep alive parameters

{

struct _KEEP_CFG cfg;


cfg.KLIdle = 20000;

cfg.KLIntvl =1000;// 15000;

cfg.KLCount = 1;//9

WCHNET_ConfigKeepLive(&cfg);

}

#endif

memset(socket, 0xff, WCHNET_MAX_SOCKET_NUM);

WCHNET_CreateTcpSocketListen();                               //Create TCP Socket for Listening



您好,

1.在更改208的本地IP前,需要调用WCHNET_SocketClose函数关闭已打开的socket。

2.再次调用ETH_LibInit函数后需调用ETH_PHYLink函数重新建立PHY的连接。


多谢,测试了可以的


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