Solved

unix networking programming

Posted on 1998-12-17
7
241 Views
Last Modified: 2013-12-23
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!!
0
Comment
Question by:boosta
7 Comments
 
LVL 2

Expert Comment

by:rdelfino
Comment Utility

Who have you sent this question?

What answer?

Which bugs?

Who am I?

Who was George Washington?

What am I doing here?

Reginaldo
stoned . . . . . . .
 
0
 
LVL 22

Expert Comment

by:blu
Comment Utility
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?
0
 
LVL 4

Expert Comment

by:davidmwilliams
Comment Utility
 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";
      break;

    case 3:
      service = argv [2];

    case 2:
      host = argv [1];
      break

    default:
      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.
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 4

Expert Comment

by:davidmwilliams
Comment Utility
 Perhaps more importantly, have you modified the program, since I provided it !!
0
 
LVL 4

Accepted Solution

by:
davidmwilliams earned 110 total points
Comment Utility
 The program presented works fine...
0
 

Author Comment

by:boosta
Comment Utility
I have tested this program NOW and it works fine! Sorry for the inconvenience! Thanx!
0
 
LVL 4

Expert Comment

by:davidmwilliams
Comment Utility
Phew !  No problem at all.  Glad it helped!
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

I was recently sitting at a desk at work with one of my colleagues and needed some information on my home computer. He watched as I turned on my home computer, established a remote session into it, got the information I needed and then shut it down …
Even if you have implemented a Mobile Device Management solution company wide, it is a good idea to make sure you are taking into account all of the major risks to your electronic protected health information (ePHI).
After creating this article (http://www.experts-exchange.com/articles/23699/Setup-Mikrotik-routers-with-OSPF.html), I decided to make a video (no audio) to show you how to configure the routers and run some trace routes and pings between the 7 sites…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now