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 ?
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:56 UTC