couldn't bind to local address

From: David Xu <davidxu_at_freebsd.org>
Date: Sun, 21 May 2006 12:04:10 +0800
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);
}
Received on Sun May 21 2006 - 02:04:21 UTC

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