2016-12-22 21 views
0

私はPC(クライアントプログラム)に接続されたマイクロコントローラでLWIP + RTOSを使用してTCP接続(サーバー)を構成しのlwIP + RTOSの再接続

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上で実行されている場合は、すべてがOKです。しかし、マイクロコントローラ上でnetconn_connect(..)関数を実行した後にPCクライアントを起動すると、()条件は決してERR_OKになりません。 PCクライアントに正しく接続するためにコードを変更する方法を教えてください。

答えて

0

あなたは間違って使用しています。アプリケーションがサーバーである場合は、正しい使用方法は、多かれ少なかれ、次のようになります

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/Netconn_Accept