From owner-freebsd-questions@FreeBSD.ORG Wed Jun 25 05:36:34 2003 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2F77837B401 for ; Wed, 25 Jun 2003 05:36:34 -0700 (PDT) Received: from dire.bris.ac.uk (dire.bris.ac.uk [137.222.10.60]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5F18443FE0 for ; Wed, 25 Jun 2003 05:36:33 -0700 (PDT) (envelope-from Jan.Grant@bristol.ac.uk) Received: from mail.ilrt.bris.ac.uk by dire.bris.ac.uk with SMTP-PRIV with ESMTP; Wed, 25 Jun 2003 13:36:22 +0100 Received: from cmjg (helo=localhost) by mail.ilrt.bris.ac.uk with local-esmtp (Exim 3.16 #1) id 19V9T7-000352-00; Wed, 25 Jun 2003 13:33:45 +0100 Date: Wed, 25 Jun 2003 13:33:45 +0100 (BST) From: Jan Grant X-X-Sender: cmjg@mail.ilrt.bris.ac.uk To: Gagan Grewal In-Reply-To: <20030623003345.A2921@vsnl.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: Jan Grant cc: freebsd-questions@freebsd.org Subject: Re: using bind() call on FreeBSD X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 12:36:34 -0000 On Mon, 23 Jun 2003, Gagan Grewal wrote: > Hi Folks :) > > I am trying to write a simple a server process which follows this sequence... > socket() > bind() > listen() > accept() > . > . > . > close( descriptor from accept() ) > close( descriptor from socket() ) > > But I am getting error 99 (Cannot assign requested address) from bind(). > > I am trying to bind the socket on 127.0.0.1:3333 > (This works on Linux though) > > Are there any special/extra things I need to do in /etc or elsewhere to make > this program run on FreeBSD ? > > I am running FreeBSD 4.7-RELEASE > > Any help/pointers from you folks would be great :) > > Thanks in advance :) You don't offer any source code, but people are often "gotcha"'d by the fact that FreeBSD really means "must be zero" when it describes spare entries in a sockstat as MBZ. Linux doesn't care. If you have a struct sockaddr_in a; try changing it to struct sockaddr_in a = {}; - C semantics for structure initialisation mean that unspecified fields are set to zero. Cheers, jan -- jan grant, ILRT, University of Bristol. http://www.ilrt.bris.ac.uk/ Tel +44(0)117 9287088 Fax +44 (0)117 9287112 http://ioctl.org/jan/ Don't annihilate, assimilate: MacDonalds, not missiles.