设为首页收藏本站

网络分析论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5854|回复: 13

vxworks client程序问题

  [复制链接]
zh_h_w2008 发表于 2009-7-27 14:05 | 显示全部楼层 |阅读模式
打算用tcp协议和授时中心进行通信,先建立一个socket 然后 connect() 授时中心,提示connect error 不知道到哪儿出现问题,大家帮着看看  下面是源码!
/*网络校时任务   ntp 网络时间校时*/
#include "socket.h"
#include "socklib.h"
#include "netinet/in_systm.h"
#include "netinet/in.h"
#include "in.h"
#include "netinet/ip.h"
#include "inetlib.h"
#define   PRIORITY2   250
void net_time1();

void init_nettime(void)
{
        int task_nettime1;
       
        /*printf("task_nettime\n");*/
       
        task_nettime1 = taskSpawn("net_timetask", PRIORITY2, 0, 1024,
                (FUNCPTR)net_time1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
               
  if (task_nettime1 == ERROR)
                {
                        printf("Start [net_time] Error.\n");
                }
                /*printf("task_nettime ok\n");
    taskDelay(10);*/
   
}
void net_time1()
{
        /*服务器端ip*/
        /*char szIPAddr[]={"192.168.0.110"};*/

         char szIPAddr[]={"129.6.15.28"};
         struct sockaddr_in sa;   /*服务器*/
         
         struct sockaddr_in addrLocal;
         /*static socket sock;*/
         int  sock;
          int iError;
          unsigned long ulTime;
          ulTime  = iError = 0;
          fd_set fd;
                /*建立socket*/       
           if ((sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))
                   /*(sock = socket(AF_INET,SOCK_DGRAM,0))*/ == ERROR)
                {
                         printf("error in create sock\n");
                }
                /*
                bzero((char*)&addrLocal, sizeof(struct sockaddr_in));
        addrLocal.sin_family = AF_INET;
        addrLocal.sin_port = htons(9990);
        addrLocal.sin_addr.s_addr = htonl(INADDR_ANY);*/
        /*
         if (bind(sock, (struct sockaddr*)(&addrLocal), sizeof(struct sockaddr_in)) == ERROR)
        {
                printf("bind socket error.\n");
                close(sock);
                return;
        }*/
        FD_ZERO(&fd);
        FD_SET(sa, &fd);
       
        select(FD_SETSIZE, NULL, &fd, NULL, FOREVER);
       
        bzero((char*)&sa, sizeof(struct sockaddr_in));
        sa.sin_addr.s_addr = inet_addr(szIPAddr);
          /*sa.sin_addr.S_un.S_addr=inet_addr(szIPAddr);*/
      sa.sin_port=htons(23);
     /*
                        sa.sin_port=htons(37);*/
     
                        sa.sin_family=AF_INET;
                       
        if (connect(sock,(struct socketaddr *)&sa,sizeof(sa)) == ERROR)
        {
                printf("connect error\n");
                close(sock);
                return;
        }
/*
        connect(sock,(SOCKADDR *)&sa,sizeof(sa));*/
       
        while(1)
        {
  /*if (connect(sock,(SOCKADDR *)&sa,sizeof(sa)) == ERROR)
        {
                printf("connect error\n");
                close(sock);
                return;
        }*/
        iError = recv(sock,(char*)&ulTime,4,MSG_PEEK);
        printf("%d\n", iError);
        printf("%d\n", ulTime);
        close(sock);       
  }
}
 楼主| zh_h_w2008 发表于 2009-8-11 11:08 | 显示全部楼层
问题已解决!
又见浪子 发表于 2010-7-8 18:35 | 显示全部楼层
呵呵,我没有说清楚,不好意思我的客户端要循环接收多个服务器的数据,现在我只能实现接收一个服务器数据,一旦服务器数量超过1时,就一个也连不上了,不知道怎么实现单任务单客户端接收多个服务器数据的功能
小细猫 发表于 2010-9-30 17:41 | 显示全部楼层
:lol:lol
闷骚中旳妩媚 发表于 2011-6-11 22:31 | 显示全部楼层
路过看看了!!!!!!
彤彤 发表于 2011-9-20 17:28 | 显示全部楼层
俺也是路过滴。。
维尔莉特 发表于 2011-12-22 19:29 | 显示全部楼层
没看懂是什么
胭脂泪 发表于 2012-10-10 17:59 | 显示全部楼层
俺也没看懂!
我在坚持什么 发表于 2013-3-28 15:10 | 显示全部楼层
俺是路过滴!
我是一片云 发表于 2013-6-29 20:53 | 显示全部楼层
俺也是打酱油滴
cjmep 发表于 2013-12-7 14:10 | 显示全部楼层
北京广安门中医院挂号











static/image/common/sigline.gif
美工刀厂 大连到三亚旅游  美工刀 
时代广 发表于 2014-11-25 17:25 | 显示全部楼层
就是这样的啊。。
维尔莉特 发表于 2015-6-27 20:38 | 显示全部楼层
进来学习了呢。。。

Archiver|手机版|小黑屋|网络分析论坛 ( 京ICP备05002225  

GMT+8, 2020-1-17 23:26 , Processed in 1.218757 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2014 协议分析论坛

快速回复 返回顶部 返回列表