Skip to content

Instantly share code, notes, and snippets.

@scottdriscoll
Created September 19, 2014 04:55
Show Gist options
  • Save scottdriscoll/efa1c69f561ac3c0dad8 to your computer and use it in GitHub Desktop.
Save scottdriscoll/efa1c69f561ac3c0dad8 to your computer and use it in GitHub Desktop.
upd tests
#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