Re: couldn't bind to local address

From: Kostik Belousov <kostikbel_at_gmail.com>
Date: Sun, 21 May 2006 07:32:49 +0300
On Sun, May 21, 2006 at 12:04:10PM +0800, David Xu wrote:
> It is very weired that on AMD64, bind() can not bind to local address,
> the following code prints out "bind(): Can't assign requested address".
> 
> David Xu
> ---
> 
> 
> include <netinet/in.h>
> #include <sys/socket.h>
> #include <stdio.h>
> 
> int main()
> {
> 	struct sockaddr_in addr;
> 	int s;
> 
> 	s = socket(AF_INET, SOCK_STREAM, 0);
> 	if (s == -1) {
> 		perror("socket()");
> 		return (1);
> 	}
> 
> 	addr.sin_family = AF_INET;
> 	addr.sin_port = htons(9000);
> 	addr.sin_addr.s_addr = inet_addr("127.0.0.1");
> 
> 	if (bind(s, (struct sockaddr *)&addr, sizeof(addr))) {
> 		perror("bind()");
> 		return (2);
> 	}
> 
> 	close(s);
> 	return (0);
> }

I tried your code on the

amd64% uname -a
FreeBSD amd64.kiev.zoral.com.ua 6.1-RELEASE FreeBSD 6.1-RELEASE #1: Fri May 12 12:05:38 UTC 2006     root_at_:/mnt/bsd/obj/amd64/usr/bsd/src/sys/GENERIC  amd64

and did not receive any errors. Could it be that you have lo0 misconfigured ?
What ifconfig -a show ?

Received on Sun May 21 2006 - 02:32:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:56 UTC