LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   connection refused in my client server program (https://www.linuxquestions.org/questions/programming-9/connection-refused-in-my-client-server-program-839984/)

jamesbon 10-23-2010 09:34 AM

connection refused in my client server program
 
I wrote a simple client server socket program in C.
The program did worked I compiled
Code:

cc server.c -o server.o
cc client.c -o client.o

and executed
Code:

./server.o
./client.o

Things were running successfully.
After this I disconnected and again tried to run the client program this time I got error
Code:

ooprs: client1: Connection refused
here is the code server.c
Code:

#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
int
main ()
{
  int server_sockfd, client_sockfd;
  int server_len, client_len;
  struct sockaddr_in server_address;
  struct sockaddr_in client_address;
  server_sockfd = socket (AF_INET, SOCK_STREAM, 0);
  server_address.sin_family = AF_INET;
  server_address.sin_addr.s_addr = inet_addr ("127.0.0.1");
  server_address.sin_port = 9734;
  server_len = sizeof (server_address);
  bind (server_sockfd, (struct sockaddr *) &server_address, server_len);
  listen (server_sockfd, 5);
  while (1)
    {
      char ch;
      printf ("server waiting\n");
      client_len = sizeof (client_address);
      client_sockfd =
        accept (server_sockfd, (struct sockaddr *) &client_address,
                &client_len);
      read (client_sockfd, &ch, 1);
      ch++;
      write (client_sockfd, &ch, 1);
      close (client_sockfd);
    }

}

and client.c
Code:

#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>
int
main ()
{
  int sockfd;
  int len;
  int result;
  struct sockaddr_in address;
  char ch = 'A';
  sockfd = socket (AF_INET, SOCK_STREAM, 0);
  address.sin_family = AF_INET;
  address.sin_addr.s_addr = inet_addr ("127.0.0.1");
  address.sin_port = 9734;
  len = sizeof (address);
  result = connect (sockfd, (struct sockaddr *) &address, len);
  if (result == -1)
    {
      perror ("ooprs: client1");
      exit (1);
    }
  write (sockfd, &ch, 1);
  read (sockfd, &ch, 1);
  printf ("char from server = %c\n", ch);
  close (sockfd);
  exit (0);
}


rriggs 10-23-2010 10:28 PM

You don't check the return value of some of your calls in server.c. Are they succeeding? Do you get the "server waiting" message?


All times are GMT -5. The time now is 12:26 AM.