在线时间0 小时
UID413420
注册时间2013-1-18
NXP金币0
该用户从未签到
新手上路

- 积分
- 31
- 最后登录
- 1970-1-1
|
基于MQX的UDP通信,电脑和K60N512能ping通,但是数据接收不到。。。 |
这是程序,大家帮忙看一下
_mqx_int lw_telnet_server(void)
{
uint_32 listensock;//sock;
sockaddr addr;
sockaddr client_addr;
uint_32 error, option;
uchar buffer[2000];
int count;
uint_16 addrlen = sizeof(client_addr);
/* Install device drivers for socket and telnet I/O */
_io_socket_install("socket:");
_io_telnet_install("telnet:");
listensock = socket(AF_INET, SOCK_DGRAM, 0);
return_error_if(listensock == RTCS_SOCKET_ERROR);
option = TELNETDCFG_BUFFER_SIZE;
error = setsockopt(listensock, SOL_UDP, OPT_TBSIZE, &option, sizeof(option));
return_error_if(error != RTCS_OK);
option = TELNETDCFG_BUFFER_SIZE;
error = setsockopt(listensock, SOL_UDP, OPT_RBSIZE, &option, sizeof(option));
return_error_if(error != RTCS_OK);
option = TELENETDCFG_TIMEWAIT_TIMEOUT;
error = setsockopt(listensock, SOL_UDP, OPT_TIMEWAIT_TIMEOUT, &option, sizeof(option));
return_error_if(error != RTCS_OK);
#if RTCSCFG_ENABLE_IP4
((sockaddr_in*)(&addr))->sin_family = AF_INET;
((sockaddr_in*)(&addr))->sin_port = IPPORT_TELNET;
((sockaddr_in*)(&addr))->sin_addr.s_addr = INADDR_ANY;
#elif RTCSCFG_ENABLE_IP6
printf("\nThis application don't support IPv6 only.\n");
_task_block();
#endif
error = bind(listensock, &addr, sizeof(addr));
return_error_if(error != RTCS_OK);
while(1)
{
sendto(listensock, "Hello,world!\n", 15, 0, (struct sockaddr *) &client_addr,addrlen);
count = recvfrom(listensock, buffer, 500, 0, (struct sockaddr *) &client_addr,&addrlen);
if (count == RTCS_ERROR)
{
printf("\nrecvfrom() failed with error %lx",RTCS_geterror(listensock));
}
else
{
printf("\nReceived %ld bytes of data.", count);
sendto(listensock, "Hello,world!\n", 15, 0, (struct sockaddr *) &client_addr,addrlen);
}
RTCS_time_delay(100);
}
    
|
|
|