Home windows Example of a client and server on C / C++

Example of a client and server on C / C++

Author

Date

Category

Can anyone have examples of the finished server and customer communicating via TCP / IP ? It is desirable to with . If there is, you can and under unix , and under Windows .


Answer 1, Authority 100%

For Unix (embroidered from Ineta):

Server.

# include & lt; stdio.h & gt;
#Include & lt; stdlib.h & gt;
#Include & lt; String.h & gt;
#Include & lt; unistd.h & gt;
#Include & lt; sys / Types.h & gt;
#Include & lt; sys / socket.h & gt;
#Include & lt; netinet / in.h & gt;
Void Error (Const Char * MSG)
{
  PERROR (MSG);
  EXIT (1);
}
Int Main (int argc, char * argv [])
{
   int sockfd, newsockfd, portno;
   SOCKLEN_T CLILEN;
   Char Buffer [256];
   STRUCT SOCADDR_IN SERV_ADDR, CLI_ADDR;
   int n;
   if (argc & lt; 2) {
     FPRINTF (STDERR, "ERROR, NO Port Provided \ N");
     EXIT (1);
   }
   SOCKFD = Socket (AF_INET, SOCK_STREAM, 0);
   if (Sockfd & lt; 0)
    ERROR ("Error Opening Socket");
   Bzero ((char *) & amp; serv_addr, sizeof (serv_addr));
   portno = ATOI (ARGV [1]);
   serv_addr.sin_family = af_inet;
   serv_addr.sin_addr.s_addr = inaddr_any;
   SERV_ADDR.SIN_PORT = HTNS (Portno);
   If (Bindddr *) & Amp; SERV_ADDR,
       SizeOF (SERV_ADDR)) & lt; 0)
       error ("Error On Binding");
   Listen (SOCKFD, 5);
   CLILEN = SIZEOF (CLI_ADDR);
   newsockfd = accept (sockfd,
         (struct SOCKADDR *) & amp; CLI_ADDR,
         & amp; clip);
   if (newsockfd & lt; 0)
     ERROR ("Error on Accept");
   BZERO (Buffer, 256);
   n = read (newsockfd, buffer, 255);
   if (N & LT; 0) Error ("Error Reading From Socket");
   PRINTF ("HERE IS THE MESSAGE:% S \ N", Buffer);
   n = write (Newsockfd, "I GOT Your Message", 18);
   if (N & LT; 0) Error ("Error Writing to Socket");
   Close (Newsockfd);
   Close (Sockfd);
   Return 0;
}

client.

# include & lt; stdio.h & gt;
#Include & lt; stdlib.h & gt;
#Include & lt; unistd.h & gt;
#Include & lt; String.h & gt;
#Include & lt; sys / Types.h & gt;
#Include & lt; sys / socket.h & gt;
#Include & lt; netinet / in.h & gt;
#Include & lt; netdb.h & gt;
Void Error (Const Char * MSG)
{
  PERROR (MSG);
  EXIT (0);
}
Int Main (int argc, char * argv [])
{
  INT SOCKFD, PORTNO, N;
  STRUCT SOCKADDR_IN SERV_ADDR;
  STRUCT HOSTENT * SERVER;
  Char Buffer [256];
  if (argc & lt; 3) {
    FPRINTF (STDERR, "Usage% s HostName Port \ n", argv [0]);
    EXIT (0);
  }
  portno = ATOI (ARGV [2]);
  SOCKFD = Socket (AF_INET, SOCK_STREAM, 0);
  if (Sockfd & lt; 0)
    ERROR ("Error Opening Socket");
  Server = GetHostByname (ARGV [1]);
  If (Server == NULL) {
    FPRINTF (STDERR, "ERROR, NO SUCH HOST \ N");
    EXIT (0);
  }
  Bzero ((char *) & amp; serv_addr, sizeof (serv_addr));
  serv_addr.sin_family = af_inet;
  BCOPY ((Char *) Server- & gt; h_addr,
     (char *) & amp; serv_addr.sin_addr.s_addr,
     Server- & gt; h_LENGTH);
  SERV_ADDR.SIN_PORT = HTNS (Portno);
  if (connectdr *) & amp; serv_addr, sizeof (serv_addr)) & lt; 0)
    ERROR ("Error Connecting");
  Printf ("Please Enter The Message:");
  BZERO (Buffer, 256);
  FGETS (Buffer, 255, Stdin);
  N = Write (Sockfd, Buffer, Strlen (Buffer));
  if (n & lt; 0)
     ERROR ("Error Writing to Socket");
  BZERO (Buffer, 256);
  n = read (sockfd, buffer, 255);
  if (n & lt; 0)
     error ("Error Reading From Socket");
  PrintF ("% s \ n", buffer);
  Close (Sockfd);
  Return 0;
}

Answer 2, Authority 33%

Alp – an excellent programming book on C. In details, an example of creating such applications is painted. The book is the truth is calculated on Linux programmers, but without a doubt Must Read those who decided to make deeper with, and from there there is something to learn.

Programmers, Start Your Engines!

Why spend time searching for the correct question and then entering your answer when you can find it in a second? That's what CompuTicket is all about! Here you'll find thousands of questions and answers from hundreds of computer languages.

Recent questions