Created
September 19, 2014 04:55
-
-
Save scottdriscoll/efa1c69f561ac3c0dad8 to your computer and use it in GitHub Desktop.
upd tests
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "stdafx.h" | |
#include <winsock2.h> | |
int _tmain(int argc, _TCHAR* argv[]) | |
{ | |
WSADATA wsaData = { 0 }; | |
char ip[64]; | |
char message[256]; | |
char readMessage[256]; | |
int port = 12121; | |
SOCKET sock; | |
bool received = false; | |
fd_set socketSelect; | |
sockaddr_in sockAddr; | |
sockaddr_in remoteAddr; | |
int addrlen = sizeof(remoteAddr); | |
memset(message, 0, sizeof(message)); | |
memset(readMessage, 0, sizeof(readMessage)); | |
memset(&remoteAddr, 0, sizeof(remoteAddr)); | |
memset((char *)&sockAddr, 0, sizeof(sockAddr)); | |
WSAStartup(MAKEWORD(2, 2), &wsaData); | |
printf("Enter IP to connect to: "); | |
scanf_s("%s", ip, sizeof(ip)); | |
printf("Enter a message to send: "); | |
fflush(stdin); | |
fgets(message, sizeof(message), stdin); | |
sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); | |
if (sock == INVALID_SOCKET) { | |
printf("Could not create socket."); | |
return 0; | |
} | |
sockAddr.sin_family = AF_INET; | |
sockAddr.sin_addr.s_addr = htonl(INADDR_ANY); | |
sockAddr.sin_port = htons(12121); | |
if (bind(sock, (struct sockaddr *)&sockAddr, sizeof(sockAddr)) < 0) { | |
printf("Could not bind socket to the port.\n"); | |
scanf_s("%s", message, sizeof(message)); | |
return 0; | |
} | |
remoteAddr.sin_port = htons(12121); | |
remoteAddr.sin_addr.s_addr = inet_addr(ip); | |
remoteAddr.sin_family = AF_INET; | |
printf("Waiting...\n"); | |
socketSelect.fd_array[0] = sock; | |
socketSelect.fd_count = 1; | |
while (true) { | |
sendto(sock, message, sizeof(message), 0, (struct sockaddr *)&remoteAddr, addrlen); | |
if (recvfrom(sock, readMessage, sizeof(readMessage), 0, (struct sockaddr *)&remoteAddr, &addrlen)) { | |
if (received == false) { | |
received = true; | |
printf("Message received: %s\n", readMessage); | |
} | |
} | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment