Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Mar 1998 01:08:39 -0600 (CST)
From:      Tony Kimball <alk@pobox.com>
To:        questions@FreeBSD.ORG
Subject:   accept fails me -- why?
Message-ID:  <199803140708.BAA22691@pobox.com>

next in thread | raw e-mail | index | archive | help

I thought I understood this stuff cold... but now I wonder...
In this trivial program, the accept call fails with EINVAL.  Go
figure.  Any suggestions?

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int 
main(int ac, char **av) {
   int server_port;
   int server_fd;
   int client_fd;
   struct sockaddr_in sname;
   int arg = sizeof(sname);
   int one = 1;

   server_port = 2001;
   server_fd = socket(AF_INET, SOCK_STREAM, 0);
   if (server_fd == -1) 
       perror("server socket failed");
   setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, (void *)&one, sizeof(one));    
   sname.sin_family = AF_INET;
   sname.sin_port = htons((u_short)server_port);
   sname.sin_addr.s_addr = INADDR_ANY;
   if (bind(server_fd,(struct sockaddr *)&sname,sizeof(sname))) 
       perror("server bind failed");
   client_fd = accept(server_fd,(struct sockaddr *)&sname,&arg);
   if (client_fd == -1)
       perror("client accept failed");
}




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199803140708.BAA22691>