我在ucos+lwip+lm3s8962环境中建立了一个TCP_echo_server 任务,其功能是 回送接收到的数据(将从TCP端口接收到的数据发送回去)
但是我的程序只能工作一次 -------------就是建立连接后,发送第一次的时候,可以接收到回发的数据,以后就不行了!源代码如下:
static void EchoRequest( struct netconn *pxNetCon ) {
struct netbuf *pxRxBuffer;
char *pcRxString;
unsigned short usLength;
pxRxBuffer = netconn_recv( pxNetCon );< /FONT >
if ( pxRxBuffer != NULL ){
netbuf_data( pxRxBuffer, ( void * ) &pcRxString, &usLength );
if ( pcRxString != NULL){
netconn_write( pxNetCon, pcRxString, (u16_t) usLength, NETCONN_COPY );
}
netbuf_delete( pxRxBuffer );
}
}
portTASK_FUNCTION( ){
struct netconn *pxTCPListener, *pxNewConnection;
pxTCPListener = netconn_new( NETCONN_TCP );
netconn_bind(pxTCPListener, NULL, 23 );
netconn_listen( pxTCPListener );
for( ;; ){
pxNewConnection = netconn_accept(pxTCPListener);
if(pxNewConnection != NULL){
EchoRequest(pxNewConnection);
}
}
}
[
本帖最后由 历史的天空 于 2011-3-16 22:34 编辑 ]
此帖出自
小平头技术问答
一周热门 更多>