|
求助!!!
tcp多客户端连接。使用modbus poll第一次连接服务器,有时候能连上服务器,有时候就连不上。
1.如果连上服务区,然后modbuspoll软件断开重新连接后,能连上但是会提示解析数据错误(首次连接数据会正常交互)。
2.如果第一个poll客户端连上后,第二个客户端也能连上,但是也是会提示解析数据错误。
多客户端建立的程序如下:
static void TCPServer(void* arg)
{
struct netconn *conn, *newconn, *newclient; //创建连接对象
err_t err;
/*创建TCP*/
conn = netconn_new(NETCONN_TCP);
netconn_bind(conn,IP_ADDR_ANY,502);
netconn_listen(conn);
while(1)
{
if(client_count < TCPNUMMAX)
{
err = netconn_accept(conn,&newconn);
if(err == ERR_OK)
{
printf("建立连接ok,当前连接数 %d",client_count + 1);
client_count ++;
sys_thread_new("modbus_tcp_more", modbusTCPServerone_to_more, newconn, 2048, 5);
}
}else //删除新的连接
{
err = netconn_accept(conn,&newclient);
if(err == ERR_OK)
{
netconn_close(newclient);
netconn_delete(newclient);
newclient = NULL;
}
}
}
}
|
|