Skip to content

Instantly share code, notes, and snippets.

@HarshKumarChoudary
Last active November 20, 2021 12:04
Show Gist options
  • Save HarshKumarChoudary/aec6cb09b05b6b8eb880f9bf827692b4 to your computer and use it in GitHub Desktop.
Save HarshKumarChoudary/aec6cb09b05b6b8eb880f9bf827692b4 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
// importing libraries
int main(){
//intializations
char *ip = "127.0.0.1";
int port = 5565;
int server_sock, client_sock;
struct sockaddr_in server_addr, client_addr;
socklen_t addr_size;
char buffer[100];
int n;
//for TCP its STREAM for UDP USE DGRAM.
server_sock = socket(AF_INET, SOCK_STREAM, 0);
if (server_sock < 0){
perror("[-]Socket error");
exit(1);
}
printf("[+]TCP server socket created.\n");
memset(&server_addr, '\0', sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = port;
server_addr.sin_addr.s_addr = inet_addr(ip);
n = bind(server_sock, (struct sockaddr*)&server_addr, sizeof(server_addr));
if (n < 0){
perror("[-]Bind error");
exit(1);
}
printf("[+]Bind to the port number: %d\n", port);
listen(server_sock, 5);
printf("Listening...\n");
// initially buffer 100 bytes change it according to need of packet sizes
bzero(buffer, 100);
int i=1;
addr_size = sizeof(client_addr);
client_sock = accept(server_sock, (struct sockaddr*)&client_addr, &addr_size);
printf("[+]Client connected.\n");
// two times receiveing and sending packets to measure RTT
while(i<=2){
recv(client_sock, buffer, sizeof(buffer), 0);
printf("Client: %s\n", buffer);
long int presize = sizeof(buffer);
bzero(buffer,100);
char string[20];
sprintf(string, "%d", i);
strcpy(buffer,string );
send(client_sock, buffer, strlen(buffer), 0);
++i;
bzero(buffer, presize);
}
close(client_sock);
printf("[+]Client disconnected.\n\n");
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment