一个网络编程方面的有关问题,connect()老是报错,请高手帮忙
发布时间:2010-06-14 16:41:45 文章来源:www.iduyao.cn 采编人员:星星草
一个网络编程方面的问题,connect()老是报错,请高手帮忙!
客户端程序每次都提示下面的错误,不知道是什么原因:
-> socket_client
addr: 192.168.10.34
create socket OK!!!!!!!
: OK
connect error: S_errno_EHOSTUNREACH
value = -1 = 0xffffffff
下面是客户端的代码:
#include <vxWorks.h>
#include <string.h>
#include <errnoLib.h>
#include <netdb.h>
#include <netinet/in.h>
#include <sockLib.h>
#include <ioLib.h>
#include <stdio.h>
#include <hostLib.h>
#include <inet.h>
#define port_num 6100
int socket_client()
{
int sockAddrSize; /* size of socket address structure */
int clientsocket;
struct sockaddr_in serversocket;/* connector's address information */
char buf[200];
int numbytes;
struct hostent *he;
char *server = "192.168.10.34";
sockAddrSize = sizeof (struct sockaddr_in);
bzero ((char *) &serversocket, sockAddrSize);
serversocket.sin_family = AF_INET; /* host byte order */
serversocket.sin_port = htons(port_num); /* short, network byte order */
serversocket.sin_len = (u_char) sockAddrSize;
serversocket.sin_addr.s_addr = inet_addr(server);
bzero((char *)&(serversocket.sin_zero),8);
printf("addr: %s\n",inet_ntoa(serversocket.sin_addr));
if((clientsocket = socket(AF_INET,SOCK_STREAM,0))==ERROR)
{
perror("create socket error\n");
return(ERROR);
}
perror("create socket OK!!!!!!!\n");
if((connect(clientsocket,(struct sockaddr*)&serversocket,sockAddrSize))==ERROR)
{
perror("connect error");
return(ERROR);
}
perror("connect OK\n");
if((numbytes = recv(clientsocket, buf,200,0)))
{
perror("recv error");
return(ERROR);
}
perror("ALL OK!!!!");
buf[numbytes]='\0';
printf("Received: %s",buf);
close(clientsocket);
return 0;
}
下面是服务器端的代码:
#include <vxWorks.h>
#include <string.h>
#include <errnoLib.h>
#include <netdb.h>
#include <netinet/in.h>
#include <sockLib.h>
#include <ioLib.h>
#include <stdio.h>
#include <inet.h>
#define port_num 6100
/*#define Client_IP "192.168.10.34"*/
int socket_service()
{
struct sockaddr_in serverAddr; /* server's socket address */
struct sockaddr_in clientAddr; /* client's socket address */
int sockAddrSize; /* size of socket address structure */
int mysocket; /* socket file descriptor */
int sClientSocket;
/* set up the local address */
sockAddrSize = sizeof (struct sockaddr_in);
bzero ((char *) &serverAddr, sockAddrSize);
serverAddr.sin_family = AF_INET;
serverAddr.sin_len = (u_char) sockAddrSize;
serverAddr.sin_port = htons (port_num);
serverAddr.sin_addr.s_addr = htonl (INADDR_ANY);
/*CREATE a socket*/
if((mysocket = socket(AF_INET,SOCK_STREAM,0))==ERROR)
{
perror("create socket error\n");
return(ERROR);
}
perror("create socket OK!!!!!!!!\n");
/*bind socket to server address*/
if(bind(mysocket,(struct sockaddr*)&serverAddr,sockAddrSize) == ERROR)
{
perror("bind error\n");
close(mysocket);
return(ERROR);
}
perror("bind OK!!!!!!!!!\n");
/*listen */
if(listen(mysocket,5) == ERROR)
{
perror("ERROR\n");
return(ERROR);
}
perror("LISTEN OK!!!!\n");
/*ACCEPT() wait for new client connection */
while(1)
{
sockAddrSize = sizeof (struct sockaddr_in);
if((sClientSocket==accept(mysocket,(struct sockaddr *) &clientAddr, &sockAddrSize))==ERROR)
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
Tilcon下的Table控件问题
VxWorks5.5+Tilcon5.4环境下~~
在程序中如何在Table的最后新增一行?
------解决方案-----------------...
-
关于vxworks的inflate/deflate
请问各位大侠,在vxworks中,针对不同架构的cpu的vxworks代码中,应该是采用相同的inflate/deflate解压...
-
tornado安装问题
请高手帮忙:
问下tornado的安装过程中,如果从开始菜单直接运行tornado,会提示错误,这是因为安装还没有完成,在C盘Torn...
-
vxworks系统启动很慢
小弟最近在做一个vxworks下的项目,目前系统基本上已经搭建起来了,但是系统从flash上启动的时候非常的慢,经查看...
-
请问一下,一个任务accept产生的socket描述符怎么在另一个task的send函数中用,把那个Socket ID作为全局可以吗???谢谢!
有两个任务,一个接...
-
taskspawn 分配一个任务时,参数中有优先级,堆栈大小,我要怎么来写啊?刚刚搞这个东西。
taskspawn 分配一个任务时,参数中有优先级,堆栈...
-
谁会裸机运行pentium的cpu
谁会裸机运行pentium的cpu,能不能简单讲讲?
就是将cpu引导到保护模式后,进入到一段用户代码,这段代码是个...
-
如何根据字符数组去执行相应的函数或者查找到变量(急!)
现在需要在没有操作系统的powerPC上完成这样一个类似串口的输入输出功能。注...
-
关于vxworks TFFS文件系统搭建时 format 死机问题
我修改了tffsconfig.c systffs.c config.h 等文件,已经显示了 type size但是...
-
vxworks解压缩
请问各位大侠,vxworks的解压缩源代码怎么看不到啊?它是采用的通用deflate/inflate算法吗?
在命令行中defl...