0% found this document useful (0 votes)
4 views4 pages

Udp Server

The document contains C code for implementing UDP and TCP servers and clients. The UDP server listens for messages from clients and responds, while the UDP client sends messages to the server and receives replies. The TCP server accepts connections and exchanges messages with a client, which connects to the server and sends a message, receiving a response in return.

Uploaded by

imfkedsince2020
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views4 pages

Udp Server

The document contains C code for implementing UDP and TCP servers and clients. The UDP server listens for messages from clients and responds, while the UDP client sends messages to the server and receives replies. The TCP server accepts connections and exchanges messages with a client, which connects to the server and sends a message, receiving a response in return.

Uploaded by

imfkedsince2020
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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;
}

You might also like