Git example code

client.cpp

/* client.cpp
   Sample UDP Client in C++
   Adapted by James Skon, 2009
*/

#include <iostream>
#include <string>
using namespace std;

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <stdlib.h>
#include <strings.h>
#include <cstring>
#include <cstdlib>
#include <unistd.h>

int main()
{
  int sock;
  struct sockaddr_in server_addr;
  struct hostent *host;
  string send_data;
  char cs[1024];

  host= (struct hostent *) gethostbyname((char *)"127.0.0.1");


  if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
	{
	  perror("socket");
	  exit(1);
	}

  server_addr.sin_family = AF_INET;
  server_addr.sin_port = htons(5000);
  server_addr.sin_addr = *((struct in_addr *)host->h_addr);
  memset(&(server_addr.sin_zero),0,8);

  while (1)
	{

	  cout << "Type Something (q or Q to quit):";
	  cin >> send_data;

	  if (send_data == "q" || send_data == "Q")
		break;

	  else {
		strcpy(cs,send_data.c_str());
		sendto(sock, cs, strlen(cs), 0,
			   (struct sockaddr *)&server_addr, sizeof(struct sockaddr));
	  }
     
	}

}Code language: PHP (php)

server.cpp

/* server.cpp
   Sample UDP server in C++
   Adapted by James Skon, 2009
*/

#include <iostream>
#include <string>
using namespace std;

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>

int main()
{
  int sock;
  int addr_len, bytes_read;
  char recv_data[1024];
  struct sockaddr_in server_addr , client_addr;


  if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
	perror("Socket");
	exit(1);
  }

  server_addr.sin_family = AF_INET;
  server_addr.sin_port = htons(5000);
  server_addr.sin_addr.s_addr = INADDR_ANY;
  memset(&(server_addr.sin_zero),0,8);

  if (bind(sock,(struct sockaddr *)&server_addr,
		   sizeof(struct sockaddr)) == -1)
	{
	  perror("Bind");
	  exit(1);
	}

  addr_len = sizeof(struct sockaddr);
  
  cout << "\nUDPServer Waiting for client on port 5000";
  fflush(stdout);

  while (1)
	{

	  bytes_read = recvfrom(sock,recv_data,1024,0,
							(struct sockaddr *)&client_addr, (socklen_t *) &addr_len);

	  recv_data[bytes_read] = '\0';

	  cout << endl << inet_ntoa(client_addr.sin_addr) << " , " << ntohs(client_addr.sin_port);
	  cout << " said: " << recv_data;
	  cout.flush();


	}
  return 0;
}Code language: PHP (php)

Makefile

#MakeFile to build simple UPS client server program
# For CSC Computer Networking

CC= g++

FLAGS = -L -lsocket -lnsl


all:	server client

server.o: server.cpp	
		$(CC) -c server.cpp

client.o: client.cpp	
		$(CC) -c client.cpp

server: server.o
		$(CC) server.o -o server $(FLAGS)

client: client.o
		$(CC) client.o -o client $(FLAGS)


clean:
		rm -f *.o client serverCode language: PHP (php)
Scroll to Top