[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Linux for help (fwd)



*grin*  Well?  Why is that UDP socket connection failing?  You have a linux web
site don't you?  :)

Jason


On Mon, Jun 14, 1999 at 05:42:28PM -0700, Aaron D. Turner wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> 
> 
> I found this in my Red Hat Linux User's FAQ inbox today...  I just found
> it rather humorus that someone thought that because I have a web site I
> could help them with this particular problem.
> 
> 
> - ---------- Forwarded message ----------
> From: Shu Xiao <xiao@usc.edu>
> To: rhlufaq@pobox.com
> Date: Mon, 14 Jun 1999 15:46:22 -0700
> Subject: Linux for help
> 
> Hi,
> 
> I get stuck by a problem with our Linux-Pentinum
> cluster problem. Essentially,  what is botherring us
> is that the UDP socket program we wrote always
> fails to connect, with the error response "Connect
> Refused". But all the IP uitlities provided works fine,
> including ping, traceroute, netperf, etc.
> 
> Our configure is 9 Linux(Redhat 6.0) nodes connected
> with Ethernet switch. One node is special, with connection
> to the outside Internet and internal node as well.
> All the remaining node use reserved IP address(192.168.1.x).
> On the gateway node, we test UDP connection by a small
> socket porgram shown below.
> 
> This code runs and gets the date and time when I
> connects to outside server, but fails to get response from
> the internal nodes. It prints out "Connect Refused",
> which stuck us since there is no reason for this kind of
> failure. I suspect the problem is in the confiugration.
> Currently we disable the NIS daemon.
> 
> Any advice is highly appreciated. Thanks ahead.
> 
> Shu Xiao
> 
> 
> 
> 
> 
> 
> ==================================================
> /* inetDaytime - Connecting to "daytime" datagram daemon in other host*/
> 
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #include <netdb.h>
> #include <stdio.h>
> 
> #define BUFSZ 256
> #define SERVICE "daytime"
> 
> main(int argc, char **argv)
> {
> 
>  int s,n,len;
>  char buf[BUFSZ];
> 
>  struct hostent *hp;
>  struct servent *sp;
>  struct sockaddr sin;
> 
>  if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
>  /* acquire a socket */
>   perror("socket");
>   exit(1);
>  }
> 
>  /* check the port number of the serverwork byte order */
>  if ((sp = getserverbyname(SERVICE, "udp")) == NULL) {
>   fprintf(stderr, "%s/udp: unknown service. \n", SERVICE);
>   exit(1);
>  }
> 
>  while (--argc){
> 
>   if ((hp = gethostbyname(*++argv)) == NULL) {
>    /* look for host network address */
>    fprintf(stderr,"%s: host unknown.\n", *argv);
>    continue;
>   }
> 
>   /* set server address on the remote host */
>   sin.sinfamily = AF_INET;
>   sin_sin_port = sp->s_port;
>   bcopy(hp->h_addr, &sin.sin_addr, hp->h_length);
> 
>   printf("%s:\t", *argv);
>   fflush(stdout);
> 
>   /* send a datagram to server*/
>   if (sendto(s,buf,BUFSZ,0,&sin,sizeof(sin)) <0){
>    perror("sendto");
>    continue;
>   }
> 
>   /* receive a datagram */
>   len = sizeof(sin);
>   n = recvfrom(s, buf, sizeof(buf), 0, &sin, &len);
> 
>   if (n<0) {
>    perror("recvfrom");
>    continue;
>   }
> 
>   buf[n] = '\0';
>   printf("%s\n", buf);
>  }
> 
> 
>  close(s);
>  exit(0);
> 
> }
> 
> 
> 
> -----BEGIN PGP SIGNATURE-----
> Version: 2.6.2
> 
> iQCVAwUBN2WhdjM3jpXy1kJtAQHTywQAiiv2wGAJlVukFR+4yP95uEPn5PzOKsP3
> /kHnBSPn9W3bA6eIW5q/1VuLFw+qJz4vJWr6X1uBAgrpe5jbtdW9hN4iEK1aSE1y
> XTpZxi6B+7rsJcIBesD6psQZf1kWhkUOkklsQrSWQd9UaSNqwJyI+rxXxA0PZVie
> SA7uQO24BEQ=
> =lnAd
> -----END PGP SIGNATURE-----