2016-12-22 5 views
0

가 나는 TCP 클라이언트 프로그램이 이미 PC에서 실행중인 경우, 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 

을 구성 재접속, 모든 것이 괜찮습니다 . 하지만 PC 콘트롤러를 netcontn_connect (..) 기능을 수행 한 후 마이크로 컨트롤러에서 동작 시키면() 조건은 절대로 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 위키의 예입니다. - http://lwip.wikia.com/wiki/Netconn_Accept

관련 문제