我使用LWIP rtoS配置了MicroController(Server)中的TCP连接,已连接到PC(客户端程序)
conn = netconn_new(NETCONN_TCP);
netconn_bind(conn, &MyIPAddr, PORT);
do
{
osDelay(5);
}
while((netconn_connect(conn, &DestIPaddr, TCP_PORT)!= ERR_OK) //wait until a PC client will be available
如果TCP客户端程序已经在PC上运行,则一切都可以。但是,如果我在MicroController上执行NetConn_Connect(..)函数后启动PC客户端,则()条件永远不会是ERR_OK。我应该如何修改代码以正确连接到PC客户端?
您正在使用它错误。如果您的应用程序是服务器,则正确的用法看起来或不再像这样:
listenNetconn = netconn_new(NETCONN_TCP);
netconn_bind(listenNetconn, IP_ADDR_ANY, port);
netconn_listen(listenNetconn);
netconn_accept(listenNetconn, &clientNetconn); // wait for connection
现在,您应该使用clientNetconn
接收/发送数据。listenNetconn
仅用于收听新的传入连接,仅此而已。
这是非官方LWIP Wiki的一个示例-http://lwip.wikia.com/wiki/wiki/netconn_accept