From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,FREEMAIL_FROM, INVALID_MSGID,WEIRD_QUOTING autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fc8d0,e3e726b9ad52ca23,start X-Google-Attributes: gidfc8d0,public X-Google-Thread: 103376,e3e726b9ad52ca23,start X-Google-Attributes: gid103376,public From: RonAli@WriteMe.com (Ronald Ali) Subject: Winsock WSAEADDRNOTAVAIL exception raised... Date: 1999/05/04 Message-ID: <372f2583.102091187@news.exit109.com>#1/1 X-Deja-AN: 473973790 X-Trace: news1.exit109.com 925837147 6121 208.225.73.29 (4 May 1999 16:59:07 GMT) Organization: None NNTP-Posting-Date: 4 May 1999 16:59:07 GMT Newsgroups: alt.winsock.programming,comp.lang.ada Date: 1999-05-04T16:59:07+00:00 List-Id: I'm getting the WSAEADDRNOTAVAIL (#10049) error on the Bind (...) command. I'm on NT 4.0 (SP3), using Gnat Ada compiler & win32-winsock functions. Could someone out there in the know suggest a fix ? Could DHCP running on our network be a cause of the error? Snippets of the source code follow. I will send the full Package spec & body and Test procedure upon request. --===================================================== with WinSock; use WinSock; with Ada.Text_IO; use Ada.Text_IO; procedure Test_WinSock is begin Put_Line ("Test_Winsock..."); Startup_Sockets; -- WSASTARTUP works fine Put_Line ("The name of this host is " & Get_Host_Name); Put_Line ("The address of this host is " & Get_Host_Address); Local := (Sin_Family => AF_INET, Sin_Port => htons (5001), Sin_Addr => To_U_32 (Host_Address.h_addr_list'Address), Sin_zero => (others => '*') ); Open_Listen_Socket; -- WSASTARTUP works fine Set_Socket_Option; -- WSASTARTUP works fine Bind_Listen_Socket; -- raised WSAEADDRNOTAVAIL . . . end Test_WinSock; --===================================================== package body WinSock is . . . -------------------------------------------------------------------- procedure Open_Listen_Socket is Protocol_Used : Integer := IPPROTO_IP; begin Listen_Socket := socket_func (Addr_Family => AF_INET, Socket_Type => SOCK_STREAM, Protocol => Protocol_Used); If Listen_Socket = INVALID_SOCKET then Put ("INVALID ""Listen_Socket"""); -- raise UNKNOWN_SOCKETS_ERROR; end if; end Open_Listen_Socket; -------------------------------------------------------------------- procedure Set_Socket_Option is Result : Integer; Optval : Char_Array := "SO_REUSEADDR"; begin Result := setsockopt (The_Socket => Listen_Socket, level => SOL_SOCKET, optname => SO_REUSEADDR, optval => Optval, optlen => Optval'Size); Check_Result (WSAGetLastError); end Set_Socket_Option; -------------------------------------------------------------------- procedure Bind_Listen_Socket is Result : Integer; begin Result := Bind (The_Socket => Listen_Socket, The_Address => To_Sock_Addr (Local'Address), Name_Length => Local'Size / 8); Check_Result (WSAGetLastError); end Bind_Listen_Socket; . . . end WinSock;