unix networking programming

The answer you gave me to the question about a remote service written in c under unix does not run! It is full of bugs! Help me out!!
Who is Participating?
davidmwilliamsConnect With a Mentor Commented:
 The program presented works fine...

Who have you sent this question?

What answer?

Which bugs?

Who am I?

Who was George Washington?

What am I doing here?

stoned . . . . . . .
Brian UtterbackPrinciple Software EngineerCommented:
Since you accepted the first answer, your question no longer
appears. I suggest that you repost the question and/or incorrect
answer so that someone else might be able to help you. For instance, I am having a little trouble understanding the question from you original text and the answer might help, or clarifying the question could help.  What do you mean by converting a username to an IP address?
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 I wonder if you are referring to your earlier question where you asked for a sample service like daytime, which I answered by supplying the following program (reproduced here for the benefit of others who do not wish to have to 'pay' points to read the original question) -

#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

extern int errno;

int TCPdaytime (const char* host, const char *service);
int errexit (const char *format, ...);
int connectTCP (const char *host, const char *service)

#define LINELEN 128

int main (int argc, char *argv [])
  char *host = "localhost";
  char *service = "daytime";

  switch (argc)
    case 1:
      host = "localhost";

    case 3:
      service = argv [2];

    case 2:
      host = argv [1];

      fprintf (stderr, "usage: TCPdaytime [host [port]]\n");
      exit (1);

  TCPdaytime (host, service);
  exit (0);

TCPdaytime (const char *host, const char *service)
  char buf [LINELEN + 1];
  int s, n;

  s = connectTCP (host, service);

  while ( (n = read (s, buf, LINELEN)) > 0)
    buf [n] = '\0';
    (void) fputs (buf, stdout);

int errexit (const char *format, ...)
  va_list args;

  va_start (args, format);
  vfprintf (stderr, format, args);
  va_end (args);
  exit (1);

int connectTCP (const char *host, const char *service)
  struct hostent *phe;
  struct servent *pse;
  struct protoent *ppe;
  struct sockaddr_in sin;
  int s, type;

  memset (&sin, 0, sizeof (sin));
  sin.sin_family = AF_INET;

  if (pse = getservbyname (service, "tcp"))
    sin.sin_port = pse->s_port;
  else if ( (sin.sin_port = htons ((u_short) atoi (service))) == 0)
    errexit ("Can't get \"%s\" service entry.\n", service);

  if (phe = gethostbyname (host))
    memcpy (&sin.sin_addr, phe->h_addr, phe->h_length);
  else if ((sin.sin_addr.s_addr = inet_addr (host)) == INADDR_NONE)
    errexit ("Can't get \"%s\" host entry.\n", host);

  if ((ppe = getprotobyname ("tcp")) == 0)
    errexit ("Can't get \"tcp\" protocol entry.\n");

  type = SOCK_STREAM;

  s = socket (PF_INET, type, ppe->p_proto);
  if (s < 0)
    errexit ("Can't create socket: %s\n", strerror (errno));

  if (connect (s, (struct sockaddr *) &sin, sizeof (sin)) < 0)
    errexit ("Can't connect to %s.%s: %s\n", host, service, strerror (errno));

  return s;

  Now, you marked my answer as 'correct' on November 15th, and said "Thanx a lot. Its appropriate and accurate." (exact words).
  So, if you are unhappy with my answer, I'm surprised that you have changed your mind a month later, or you marked it as correct and 'accurate' without even running it.
  What version of Unix are you using?  What are the problems you are experiencing?  Please be more explicit.
 Perhaps more importantly, have you modified the program, since I provided it !!
boostaAuthor Commented:
I have tested this program NOW and it works fine! Sorry for the inconvenience! Thanx!
Phew !  No problem at all.  Glad it helped!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.