2013-04-01 4 views
2

에코 예제에서 우리는 데이터를 다시 에코하기 위해 동일한 패킷을 다시 보내는이 함수를 가지고 있습니다. 그래서 사용자가 보낸 고정 데이터를 보내도록 변경하려고했습니다.사용자 정의 lwip microblaze 에코 예제

err = tcp_write(tpcb, p->payload, p->len, 1); 
이에

:

 char* as="ki"; 
    err = tcp_write(tpcb, as, 3, 1); 

을하고 나는 그것을 아무것도를 다시 표시하지 않습니다 내 응용 프로그램을 실행할 때, 그 이유는?

답변

0

문제는 C 코드와 관련이 있습니다. 대신

char * as = "ki" 

사용

char as[] = "ki" 

또는 ALLOC pbuf 할 수의, 어쩌면 당신을 위해 일부 메모리를 생성 할 수 있습니다. tcp_write 당신에게 다음 다시 시도해야하고 열심히 노력 ERR_OK 이상의 무엇을 제공하는 경우

es->p = pbuf_alloc(PBUF_TRANSPORT, strlen((char*)"ki") , PBUF_POOL); 
    pbuf_take(es->p, (char*)"ki", strlen("ki")); 

또한, 당신은 또한, 반환 조건을 확인해야합니다. 나는 POLL 메커니즘에서 tcp 쓰기를 사용하고 있지만, 낮은 처리량을 제공하고 있는데, 메인 while 루프에서 사용할 때 비교적 좋은 처리량을 얻고있다.