DSIK_project/handle_communication/handle_communication.c

45 lines
1.0 KiB
C

#include "handle_communication.h";
#include "../common.h";
#include <string.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netdb.h>
void handle_communication(void *player_data)
{
communicationData *playerData = (communicationData *)player_data;
struct sockaddr_in client_address;
socklen_t c_addrlen = sizeof(client_address);
//Receive data from the client
int Socket_receive = recvfrom(
playerData->Socket,
&playerData->position, sizeof(playerPosition),
0,
(const struct sockaddr *)&client_address,
c_addrlen);
if(Socket_receive < 0) {
printf("Error while receiving a package\n");
return;
}
//Send updated position back
int Socket_send = sendto(
playerData->Socket,
&playerData->position,
sizeof(playerPosition),
0,
(const struct sockaddr *)&client_address,
c_addrlen);
if(Socket_send < 0) {
printf("Error while sending a package\n");
return;
}
}