周立功ARM嵌入式实验教程5.5TCP通信实验问题

[复制链接]
2425|6
 楼主| jesmin 发表于 2010-10-25 20:39 | 显示全部楼层 |阅读模式
void TaskE(void *pdata)
{
uint8 Temp=0;
uint16 TempLength;
int addrlen;
int ei;
unsigned char  ip_add[4]={169,254,160,218};
uint8 tempdata[400];
//uint8 err;  
SOCKET s;
struct sockaddr servaddr,cliaddr;
  Arp_Request(ip_add,0);
  OSTimeDly(60);
  servaddr.sin_family=0;
  servaddr.sin_addr[0]=NetPort[0].My_Ip[0];
  servaddr.sin_addr[1]=NetPort[0].My_Ip[1];
  servaddr.sin_addr[2]=NetPort[0].My_Ip[2];
  servaddr.sin_addr[3]=NetPort[0].My_Ip[3];
  servaddr.sin_port=80;
  s=*socket( 0, 0, 0);
  ei=bind( (SOCKET * )&s, (struct sockaddr*)&servaddr,sizeof(servaddr));
  ei=listen( (SOCKET * )&s, 4 );
  if(ei!=4)
   while(1);
while (1)
    {
  Temp=accept( (SOCKET * )&s, (struct sockaddr*)&cliaddr,&addrlen );
  if(Temp!=0xff)
  {
   TempLength=recv( Temp,tempdata ,400, 0 );
   if(tempdata[5]==' ')
   {
    send( Temp,httpweb ,169, 0 );
    OSTimeDly(10);
    send( Temp,web ,395, 0 );
   }
   else if(tempdata[5]=='1')
   {
    send( Temp, httpgif,169, 0 );
    OSTimeDly(10);
    send( Temp,bmp ,442, 0 );
   }
   memset(tempdata, 0,400);
   OSTimeDly(20);
   close(Temp);
  }
    }   
请问:tempdata[5]的值怎么来的?pc机只给服务器发了HTTP地址,tempdata收到的是什么啊?小弟初学,菜鸟,望大侠指教。
}
 楼主| jesmin 发表于 2010-10-25 21:07 | 显示全部楼层
没人回答?.........
 楼主| jesmin 发表于 2010-10-25 21:31 | 显示全部楼层
PC机只发送了IP地址啊,难道还有其他的数据,HTTP协议?
 楼主| jesmin 发表于 2010-10-25 21:44 | 显示全部楼层
为凑齐20分,不得不灌水
 楼主| jesmin 发表于 2010-10-27 15:34 | 显示全部楼层
经过对源程序的数次摧残,发现不管怎么修改结果都一样,郁闷了.......
 楼主| jesmin 发表于 2010-10-27 22:19 | 显示全部楼层
纠结了数天终于明白了,原来是http协议的原因。
 楼主| jesmin 发表于 2010-10-27 22:30 | 显示全部楼层
不给力啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

9

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部