导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[sunbin1010]紧急求助!关于vxworks下socke



No.100851
作者:sunbin1010
邮件:sunbin1010@163.com
ID:65784
登陆:1次
文章数:2篇
最后登陆IP:222.131.58.12
最后登陆:2006/12/20 22:58:15
注册:2006/12/20 19:53:25
财富:105
发帖时间:2006/12/20 20:04:11
发贴者IP:222.131.58.12
标题:sunbin1010:紧急求助!关于vxworks下socket问题。。。
摘要:No.100851紧急求助!关于vxworks下socket问题。。。 紧急求助!关于vxworks下socket问题。。。不知道什么原因,可能vxworks的某个组件没加、BSP不完善、板卡问题?我现在碰到个问题,困恼了我好久依旧没解决——vxworks服务器端一直阻塞在accept处,windows客户端在connect后返回为-1,两者连不上。

(我在vxworks(ARM2440板卡上)中加载了socket服务器程序,在win下运行自己编的客户端程序,另外,我在win下也编了个服务器程序,win下的客户端可以和win下的服务器正常通信。)

 

 

串口打印信息为:

 

0x33f805ac (tDbgTask): This is just server_socket test ...

 
after socket return 4

 

after bind return 0

 

after listen return 0

 

 

在shell下 ifShow后显示为:

 

->   ifShow
dmf (unit number 0):
    Flags: (0x8863) UP BROADCAST RUNNING ARP MULTICAST 
    Type: ETHERNET_CSMACD
    Internet address: 192.168.0.99 
    Broadcast address:   192.168.0.255
    Netmask 0xffffff00 Subnetmask 0xffffff00
    Ethernet address is 1a:2b:3c:4d:5e:6f
    Metric is 0
    Maximum Transfer Unit size is 1500
    58 packets received; 6 packets sent
    46 multicast packets received
    1 multicast packets sent
    0 input errors; 0 output errors
    0 collisions; 0 dropped
lo (unit number 0):
    Flags: (0x8069) UP LOOPBACK RUNNING ARP MULTICAST 
    Type: SOFTWARE_LOOPBACK
    Internet address: 127.0.0.1 
    Netmask 0xff000000 Subnetmask 0xff000000
    Metric is 0
    Maximum Transfer Unit size is 32768
    0 packets received; 0 packets sent
    0 multicast packets received
    0 multicast packets sent
    0 input errors; 0 output errors
    0 collisions; 0 dropped
value = 0 = 0x0

 

在PC上抓包为:

 

按此在新窗口浏览图片 

 按此在新窗口浏览图片

 按此在新窗口浏览图片

 

下面分别是vxworks(server)、windows(client)下的源码:

 

 

vxworks:

 

#include "vxWorks.h"
#include "sockLib.h"
#include "taskLib.h"
#include "inetLib.h"
#include "stdioLib.h"
#include "ioLib.h"
#include "sioLib.h" 
#include "string.h"
#include "stdLib.h"
#include "stdio.h"

  

 

#define MYPORT 2001
#define BACKLOG 3

 

 

 


int serverfunc(void)
{
 char buf[1024];
 char * clientip;
 struct sockaddr_in client;
 struct sockaddr_in server;

 

 int sk;
 int newsk;
 int namelen;
 int pktlen;
 int temp1,temp2,temp3;
 
 logMsg("%s\n\n","This is just server_socket test ...",0,0,0,0,0);
 
 
 if ((sk=socket(AF_INET, SOCK_STREAM, 0))  <0)
 {
  logMsg("%s","Socket build fail",0,0,0,0,0);
  return (-1);
 }

 

 printf("\nafter socket return %d\n",sk);

 


 memset((char *)&server,''\0'',sizeof(server));
 server.sin_family = AF_INET;

server.sin_len = sizeof(server);
 server.sin_port = htons(MYPORT);
 server.sin_addr.s_addr = INADDR_ANY;

 

 if ((temp2=bind(sk, (struct sockaddr *)&server, sizeof(server)))==-1)
 {
  logMsg("%s","Bind() fail",0,0,0,0,0);
  return (-1);
 }

 

 printf("\nafter bind return %d\n",temp2);

 

 if ((temp3=listen(sk,BACKLOG))==-1)
 {
  logMsg("%s","Listen() fail",0,0,0,0,0);
  return (-1);
 ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:47毫秒 最大:7276毫秒 查询6次