UDP SERVER
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <unistd.h>
int main() {
int sock_desc;
char buffer[100];
struct sockaddr_in server, client;
int len, k;
sock_desc = socket(AF_INET, SOCK_DGRAM, 0);
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons(3007);
bind(sock_desc, (struct sockaddr*)&server, sizeof(server));
printf("Server waiting\n");
len = sizeof(client);
while (1) {
// Receive from client
k = recvfrom(sock_desc, buffer, 100, 0,
(struct sockaddr*)&client, &len);
buffer[k] = '\0';
printf("Message received from client: %s\n", buffer);
if (strcmp(buffer, "Bye") == 0)
break;
// Send reply
printf("Enter the message to be sent to client: ");
fgets(buffer, 100, stdin);
buffer[strcspn(buffer, "\n")] = '\0';
sendto(sock_desc, buffer, strlen(buffer), 0,
(struct sockaddr*)&client, len);
if (strcmp(buffer, "Bye") == 0)
break;
}
printf("Connection terminated\n");
close(sock_desc);
return 0;
}
UDP CLIENT
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <unistd.h>
int main() {
int sock_desc;
char buffer[100];
struct sockaddr_in server;
int len, k;
sock_desc = socket(AF_INET, SOCK_DGRAM, 0);
server.sin_family = AF_INET;
server.sin_port = htons(3007);
server.sin_addr.s_addr = inet_addr("[Link]");
len = sizeof(server);
while (1) {
// Send message
printf("Enter the message to be sent to server: ");
fgets(buffer, 100, stdin);
buffer[strcspn(buffer, "\n")] = '\0';
sendto(sock_desc, buffer, strlen(buffer), 0,
(struct sockaddr*)&server, len);
if (strcmp(buffer, "Bye") == 0)
break;
// Receive reply
k = recvfrom(sock_desc, buffer, 100, 0,
(struct sockaddr*)&server, &len);
buffer[k] = '\0';
printf("Message received from server: %s\n", buffer);
if (strcmp(buffer, "Bye") == 0)
break;
}
printf("Connection terminated\n");
close(sock_desc);
return 0;
}
TCP SERVER
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <unistd.h>
int main() {
int sock_desc, temp_sock_desc;
char buffer[100];
struct sockaddr_in server, client;
int len, n;
// Create socket
sock_desc = socket(AF_INET, SOCK_STREAM, 0);
// Server details
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons(8080);
// Bind
bind(sock_desc, (struct sockaddr*)&server, sizeof(server));
// Listen
listen(sock_desc, 5);
printf("Server waiting...\n");
len = sizeof(client);
// Accept connection (creates new socket)
temp_sock_desc = accept(sock_desc, (struct sockaddr*)&client, &len);
// Receive from client
n = recv(temp_sock_desc, buffer, sizeof(buffer), 0);
buffer[n] = '\0';
printf("Message from client: %s\n", buffer);
// Send to client
printf("Enter message to send to client: ");
fgets(buffer, sizeof(buffer), stdin);
buffer[strcspn(buffer, "\n")] = '\0';
send(temp_sock_desc, buffer, strlen(buffer), 0);
// Close sockets
close(temp_sock_desc);
close(sock_desc);
return 0;
}
TCP C:IENT
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <unistd.h>
int main() {
int sock_desc;
char buffer[100];
struct sockaddr_in server;
int n;
// Create socket
sock_desc = socket(AF_INET, SOCK_STREAM, 0);
// Server details
server.sin_family = AF_INET;
server.sin_port = htons(8080);
server.sin_addr.s_addr = inet_addr("[Link]");
// Connect to server
connect(sock_desc, (struct sockaddr*)&server, sizeof(server));
// Send message
printf("Enter message to send to server: ");
fgets(buffer, sizeof(buffer), stdin);
buffer[strcspn(buffer, "\n")] = '\0';
send(sock_desc, buffer, strlen(buffer), 0);
// Receive reply
n = recv(sock_desc, buffer, sizeof(buffer), 0);
buffer[n] = '\0';
printf("Message received from server: %s\n", buffer);
close(sock_desc);
return 0;
}