delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1999/08/24/21:29:06

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT sourceware DOT cygnus DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sourceware DOT cygnus DOT com>
List-Help: <mailto:cygwin-help AT sourceware DOT cygnus DOT com>,
<http://sourceware.cygnus.com/ml/#faqs>
Sender: cygwin-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com
Message-Id: <199908250127.UAA28632@mercury.xraylith.wisc.edu>
To: "Robert A. Mackie" <robert_mackie AT mail DOT com>
cc: cygwin AT sourceware DOT cygnus DOT com
Subject: Re: posix style DGRAM sockets with cygwin.dll
In-Reply-To: Your message of "Tue, 24 Aug 1999 02:42:49 EDT."
<37C23EE9 DOT 92525BD AT mail DOT com>
Date: Tue, 24 Aug 1999 20:27:20 -0500
From: Mumit Khan <khan AT xraylith DOT wisc DOT EDU>

"Robert A. Mackie" <robert_mackie AT mail DOT com> writes:
> 
> I'm trying to get a very simple UDP example ported to cygwin as a
> starting point for some real code I expect to develop.  Everything
> compiles and links, but the sockets don't communicate.  When built for
> unix the same code works fine.  (unless I've introduced some small bug
> trying to get it to work under cygwin.)  I notice I'm not the first to
> say something like this.  The last person was using the -no-cygwin
> option and was told to call WSAStartup.  I read as much documentation as
> I could find.  It looked to me like that was not necessary when using
> the posix calls, rather than the winsock calls.  (Maybe I'm wrong ?)

If you're using -mno-cygwin, you're using Windows sockets (and you need
WSAStartup); if you're *not* using -mno-cygwin, you're using POSIX sockets
and obviously don't need the windows hacks, er features.

> If I do need to initialize winsock explicitly, could you help me with a
> couple of details? The only place that I see WSAStartup and WSACleanup
> defined is in <Windows32/Sockets.h>.  This file seems to be set up for
> an MSC compiler, and includes a bunch of other similar headers.  When I
> include any of them and the standard headers I'm used to, I get all
> sorts of re-definition collisions between the headers.  When I include
> them without the standard headers, things like strerror aren't defined.

You include winsock.h, not the internal headers, but *only* if you're using
Windows sockets. If you're using Cygwin runtime, use the POSIX specs and
forget about the windows headers (Cygwin runtime will do the right thing).

It's quite unclear from your message what runtime you're trying to use
and so on. If you could elaborate, we could try to help. 

As far as your code is concerned, there is at least one blatant bug I
see right away -- 

  server_address.sin_port        = htonl(SERVER_UDP_PORT);
                                   ^^^^^ (should be htons)

likewise in the other case. Just remember that sin_addr is htonl and
sin_port is htons and life would be a lot easier.

Perhaps you ought to check over your code a bit more and try again.

Regards,
Mumit


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019