UDP Socket Server-Client
unknown
c_cpp
2 years ago
2.0 kB
8
Indexable
// Server
#include <stdio.h>
#include <stdbool.h>
#include <unistd.h>
#include <pthread.h>
#include <arpa/inet.h>
#include <string.h>
int main()
{
int socketfd ;
if ( (socketfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) {
perror("socket creation failed");
return 0;
}
struct sockaddr_in serverAddr = {0}, cliAddr = {0};
socklen_t cliLen = sizeof(cliAddr);
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(12345);
serverAddr.sin_addr.s_addr = INADDR_ANY;
if (bind(socketfd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)) < 0){
perror("Failed to bind");
return 0;
}
char *confirm = "Received from Server";
while(true){
char buffer[1024] = {0};
socklen_t len = 0;
int recvSock = recvfrom(socketfd, (char *)buffer, sizeof(buffer), MSG_WAITALL,
(struct sockaddr *)&cliAddr, &cliLen);
buffer[recvSock] = '\0';
printf("Received: %s\n", buffer);
sendto(socketfd, (const char *)confirm, strlen(confirm),
MSG_CONFIRM, (const struct sockaddr *) &cliAddr,
sizeof(cliAddr));
printf("Confirm message sent.\n");
}
close(socketfd);
}
// Client
#include <stdbool.h>
#include <unistd.h>
#include <pthread.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <iostream>
int main(){
char msg[] = "hi";
int t = sizeof(msg);
int socketfd = socket(AF_INET, SOCK_DGRAM, 0);
struct sockaddr_in serverAddr = {0};
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(12345);
inet_pton(AF_INET,"127.0.0.1",&serverAddr.sin_addr.s_addr);
int byteCount = sendto(socketfd, msg, t, 0,
(struct sockaddr *)&serverAddr, sizeof(serverAddr));
// printf("Sent successfully %d\n", byteCount);
char buffer[1024];
socklen_t len;
int n = recvfrom(socketfd,(char *)buffer, sizeof(buffer),MSG_WAITALL,
(struct sockaddr *)&serverAddr, &len);
buffer[n]='\0';
std::cout<<buffer<<"\n";
close(socketfd);
}Editor is loading...
Leave a Comment