+ -
当前位置:首页 → 问答吧 → UNP出错问题

UNP出错问题

时间:2010-08-04

来源:互联网

大虾,vmware + ubuntu 环境编程网络程序,,怎么老是bind出错呢? ,返回:bind error: Cannot assign requested address,,,试过了N个端口都不行,,什么原因呀?? 不尽感激!!

作者: haolth   发布时间: 2010-08-04

把关键代码贴出来看看

作者: teng0210   发布时间: 2010-08-04

是不是权限不够

root试试

作者: jameszxj   发布时间: 2010-08-04

本帖最后由 haolth 于 2010-08-04 14:24 编辑
  1.     int listenfd, connfd;
  2.     pid_t childpid;
  3.     socklen_t chilen;
  4.     struct sockaddr_in cliaddr, servaddr;
  5.     listenfd = Socket(AF_INET, SOCK_STREAM, 0);
  6.     bzero(&servaddr, sizeof(servaddr));
  7.     servaddr.sin_family = AF_INET;
  8.     servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  9.     servaddr.sin_port = htons(SERV_PORT);
  10.     Bind(listenfd, (SA*)&servaddr, sizeof(servaddr));
复制代码
补上代码,SERV_PORT貌似是9870, 总之试了好多个都还是在Bind出错了,有什么要注意的吗?

作者: haolth   发布时间: 2010-08-04

  1. servaddr.sin_port = htons(SERV_PORT);
复制代码
这个是端口吧
你把端口绑定到地址了

作者: teng0210   发布时间: 2010-08-04

呵呵,这个不是关键问题,,是刚才修改这个,,估计是修改晕了,,改回来还是一样,,root试过了,还是不行

作者: haolth   发布时间: 2010-08-04

btw,,试过其他一些程序,也有此问题,,,是不是vmware要设置网络什么呀?

作者: haolth   发布时间: 2010-08-04

  1. servaddr.sin_family = AF_INET;
  2. servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  3. servaddr.sin_port = htons(SERV_PORT);
  4. bzero(&(servaddr.sin_zero), 8); //加上这个
复制代码

作者: teng0210   发布时间: 2010-08-04

本帖最后由 haolth 于 2010-08-04 14:40 编辑

呜呜,,
  1. bzero(&(servaddr.sin_zero), 8);
复制代码
//加上这个  ,,, still not work

作者: haolth   发布时间: 2010-08-04

抓狂啊,,,不解决如何进行下面学习呀!! 难道要主机装ubuntu? 虚拟机装有什么问题嘛,,真晕

作者: haolth   发布时间: 2010-08-04

判断一下listenfd是否大于0?Socket和 Bind都是咋封装的。会不会有问题?真接全用原始的socket及bind试试

一步步调一下

作者: zhangsuozhu   发布时间: 2010-08-04

我在端口没有正常关闭的时候碰到过这种情况。
重启程序的时候会bind fail

作者: beyond_touch   发布时间: 2010-08-04

相关阅读 更多

热门下载

更多