#include #include #include #include #include #include #include #include #include /******************************************************************************/ #define MAX_BUF 1600 #define PORT 6987 /******************************************************************************/ /** * MAIN - Server: read data; send concated text back */ int main(int argc, char* argv[]) { int clientAddrLen; int bindStatus, sendStatus; int socketFD; int recieved; char buffer[MAX_BUF]; struct sockaddr_in serverAddr; struct sockaddr_in clientAddr; //set clock sysClkRateSet(5000); //create socket socketFD = socket(AF_INET, SOCK_DGRAM, 0); //, , ?? IPPROTO_UDP ?? if (socketFD == -1) { perror("Socket creation error"); exit(1); } printf("Socket created\n"); //server address - set structs serverAddr.sin_family = AF_INET; serverAddr.sin_addr.s_addr = INADDR_ANY; serverAddr.sin_port = htons(PORT); //bind bindStatus = bind( socketFD, (struct sockaddr*)&serverAddr, sizeof(serverAddr) ); printf("Bind: %d\n",bindStatus); printf("Recieving on port: %d\n", PORT); //set cliet Addr length clientAddrLen = sizeof(clientAddr); //recieve data while(1) { recieved = recvfrom( socketFD, buffer, MAX_BUF, 0, (struct sockaddr*)&clientAddr, (socklen_t*)&clientAddrLen ); printf("Recieved from %s: %s", inet_ntoa(clientAddr.sin_addr), buffer); //if data if( recieved>0 ) { //append text strcat(buffer, "_RECIEVED\n"); //send back sendStatus = sendto(sockd, buf, strlen(buf)+1, 0, (struct sockaddr*)&clientAddr, sizeof(clientAddr)); printf("Send: %d\n", sendStatus); } } //close close(socketFD); return 0; }