当前位置:  技术问答>linux和unix

急!网络编程,connect()无法连接,返回 errno 为 101 。该怎么解决?谢谢

    来源: 互联网  发布时间:2015-12-08

    本文导语:  客户端连接用代码部分: for(;;)   {         bzero(&server_addr,sizeof(server_addr));   server_addr.sin_family=AF_INET;     server_addr.sin_addr.s_addr = inet_addr(host_name);    server_addr.sin_port=htons(server_port);     printf("nserver ip= %s...

客户端连接用代码部分:

for(;;)
  {
     

  bzero(&server_addr,sizeof(server_addr));
  server_addr.sin_family=AF_INET;  
  server_addr.sin_addr.s_addr = inet_addr(host_name); 
  server_addr.sin_port=htons(server_port);  

  printf("nserver ip= %s ,port = %d", inet_ntoa(server_addr.sin_addr),server_addr.sin_port);

  if((socket_fd=socket(AF_INET,SOCK_STREAM,0))==-1)
  {
    printf("nError openning socket");
    close(socket_fd);
continue;
  }
  fcntl(socket_fd,F_SETFD,O_NONBLOCK);
  if(connect(socket_fd,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
  {
    printf("nError connect ... errno = %d",errno);
    close(socket_fd);
continue;
  } 
  else
  {
  
     break;
  }
----------
启动后在超级终端输出信息:
server ip= 192.168.3.18 ,port = 16415
Error connect ... errno = 101

errno 101 的含义:
#define ENETUNREACH 101 /* Network is unreachable */
硬件没有问题,ARM9目标板通过交叉网线直接与PC相连,代码是通过网络下载到目标板的,而且右下角的状态栏也显示本地连接 已连接上,请问错误的原因是什么?怎么解决?PC在WINDOWS下开启服务监听(IP 192.168.3.18 端口 8000)谢谢

|
int main(int argc,char * argv[])
{

server_addr.sin_addr.s_addr = inet_addr(argv[1]); 
}
---------------------------
a.out 192.168.0.1

|
Network is unreachable :网卡有问题。

|
1。
if((socket_fd=socket(AF_INET,SOCK_STREAM,0))==-1)
  {
    printf("nError openning socket");
    close(socket_fd);
    continue;
此处的continue没有必要,失败了就可以中止了,不需要一直试吧

2。
fcntl(socket_fd,F_SETFD,O_NONBLOCK);
此处直接设置文件属性,没有先获取之前的属性,就直接覆盖了以前的,不太妥当。
3。
if(connect(socket_fd,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
第3个参数,如果我没记错的话,应该是sockaddr_in类型的sizeof吧。

|
关注

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • IOS开发之socket网络编程(基于SimpleNetworkStreams的c/s程序)
  • 用java做网络编程和用c做网络编程有啥区别
  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 《UNIX网络编程》这本书适合linux下的网络编程吗? iis7站长之家
  • 《UNIX网络编程》这本书适合linux下的网络编程吗?
  • 读过 Unix网络编程 或者 熟知Unix网络编程的 的进来看一下
  • 请问unix网络编程和linux网络有什么区别
  • UNIX网络编程卷1
  • 高分求网络编程方面的书籍
  • 求助:linux/unix网络编程
  • 新手请教,linux网络编程。
  • linux环境进行网络编程的教材
  • Unix/Linux网络编程怎样来做一个项目?
  • 关于文件操作和Socket网络编程!
  • linux下网络编程环境配置问题
  • java的网络编程
  • 网络编程中“多宿”是什么意思
  • 谁知道哪有《Unix网络编程》w.richard stevens 著的下载?
  • 菜鸟问题:请问要在Linux操作系统下完成TCP/IP网络编程,用什么编程工具好?
  • 请推荐几本Linux/Unix网络编程的好书吧
  • 求介绍linux下的网络编程书


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3