This is the mail archive of the
cygwin
mailing list for the Cygwin project.
get_osfhandle & WaitForSingleObject on a cygwin socket fd....
- From: S A <sagarwal10 at hotmail dot com>
- To: <cygwin at cygwin dot com>
- Date: Thu, 20 Dec 2007 18:01:34 -0800
- Subject: get_osfhandle & WaitForSingleObject on a cygwin socket fd....
Hi
Please bear with me if this is a stupid question but I'm trying to setup a telnet socket
in cygwin and then want to use a Windows wait semaphore (WaitForMultipleObjects)
to combine it with a sleep for winpcap HANDLEs.
I thought I'd test this first though.
Does get_osfhandle() on a AF_INET socket to the right thing? The WaitForSingleObject
below never wakes up (despite an incoming telnet connection).
Thanks.
main() {
struct sockaddr_in sin;
int s;
int opt = 1;
int ret;
HANDLE h;
/* init server socket. */
if ((s=socket(AF_INET, SOCK_STREAM, 0))< 0) {
printf("%s: setsockopt! %s\n", __FUNCTION__, strerror(errno));
}
/* try to bind to port */
memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); // only bind to loopback now
sin.sin_port = htons(8081);
if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
return LP_ERR_SOCKET;
}
if (listen(s, LEAD_PIPE_MAX_CONN) < 0) {
return LP_ERR_SOCKET;
}
h = (HANDLE) get_osfhandle(s);
ASSERT(h> 0);
fprintf(stdout, "Waiting on telnet handle %x\n", h);
while(1) {
WaitForSingleObject(h, INFINITE);
fprintf(stdout, "Awoke on telnet handle\n");
}
}
_________________________________________________________________
Don't get caught with egg on your face. Play Chicktionary!
http://club.live.com/chicktionary.aspx?icid=chick_wlhmtextlink1_dec
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/