在线时间0 小时
UID235156
注册时间2010-10-24
NXP金币0
该用户从未签到
新手上路

- 积分
- 51
- 最后登录
- 1970-1-1
|
我用的CW 10.1利用新建工程向导建立了基本的RTCS工程,然后参考“MQX库文件.pdf”里边的例程写两个socket程序,一个是单片机端的server端,运行正常,一个是单片机端的client端,总是出现错误,电脑端我用的网络调试助手,总是连接不上,然后用wireshark监视网口发现问题如下:
我的clientduan程序如下:
/*
* socket_client.c
*
* Created on: 2011-8-10
* Author: user
*/
#include "main.h"
#include
void socket_client()
{
/*client declaration of the variables*/
sockaddr_in addr;
uint_32 sock;
uint_32 result;
uint_16 Dport = 14875;
uint_32 bind_stat;
uint_32 ch_status;
uint_32 opt_length = sizeof(uint_32);
uint_32 opt_value = FALSE;
//uint_32 sendback;
uchar cRecvBuff[25] = {0};
uchar cSendBuff[25] = "Hello I am the client.\n";
/************************************************/
/************************************************/
addr.sin_family = AF_INET;
addr.sin_port = Dport;
addr.sin_addr.s_addr = IPADDR(192,168,1,2);
/*client declaration of the variables*/
/*client codes*/
sockk:
sock = socket (AF_INET,SOCK_STREAM,0);
//sock = socket (AF_INET,SOCK_DGRAM,0);
if (sock == RTCS_SOCKET_ERROR)
{
printf("\ncreating socket failed.%lx.",sock);
_time_delay(1000);
goto sockk;
}
else
{
printf("\ncreating socket succed.\n");
}
/*changing the socket option*/
ch_status = setsockopt(sock,SOL_TCP,OPT_SEND_NOWAIT,&opt_value,opt_length);
if (ch_status != RTCS_OK)
printf("\nSUCCESS, setsockopt() SUCCEED with error %lx", ch_status);
bindd:
bind_stat = bind (sock,&addr,sizeof(addr));
if (bind_stat == RTCS_OK)
{
printf("\nbindding succed.\n");
}
else
{
printf("\nbindding failed.%lx.",bind_stat);
_time_delay(1000);
goto bindd;
}
/////////////////////////////////////////////
/////////////////////////////////////////////
connectt:
result = connect(sock,&addr,sizeof(addr));
if (result != RTCS_OK)
{
printf("\nError--connect() failed with error code %lx.",result);
//_time_delay(1000);
//goto connectt;
}
else
{
printf("\nConnected to %lx, port %d.",addr.sin_addr.s_addr, addr.sin_port);
}
///////////////////////////////////////////////
while(TRUE)
{
_time_delay(1000);
recv (sock,(void *)cRecvBuff,sizeof(cRecvBuff),0);
send (sock,(void *)cSendBuff,sizeof(cSendBuff),0);
printf("running task socket_client");
}
/*client codes*/
}
|
|