Skip to content

Instantly share code, notes, and snippets.

@yohawing
Created April 20, 2023 21:39
Show Gist options
  • Save yohawing/0c4884b862b33064305a853bebe56c6d to your computer and use it in GitHub Desktop.
Save yohawing/0c4884b862b33064305a853bebe56c6d to your computer and use it in GitHub Desktop.
Winsock2 Simple UDP Client CPP
#pragma once
#include <stdio.h>
#include <string>
#include <WinSock2.h>
#include <WS2tcpip.h>
using namespace std;
class UDPClient
{
public:
string ipAddress;
int port;
int sock;
struct sockaddr_in addr;
UDPClient(string _ipAddress, int _port) {
ipAddress = _ipAddress;
port = _port;
}
void init() {
WSAData wsaData;
WSACleanup();
WSAStartup(MAKEWORD(2, 0), &wsaData);
sock = socket(AF_INET, SOCK_DGRAM, 0);
addr.sin_port = htons(port);
addr.sin_family = AF_INET;
inet_pton(addr.sin_family, ipAddress.c_str(), &addr.sin_addr.s_addr);
bind(sock, (struct sockaddr*)&addr, sizeof(addr));
}
size_t send(char* buffer, size_t size) {
sendto(sock, buffer, size, 0, (struct sockaddr*)&addr, sizeof(addr));
printf("send data size: %d\n", size);
return size;
}
void close() {
closesocket(sock);
WSACleanup();
}
};
@yohawing
Copy link
Author

yohawing commented Apr 20, 2023

oscpp sample

OSCPP::Client::Packet packet(buffer.data(), buffer.size());
packet
      .openBundle(1234ULL).openMessage("/msg", 1).int32(1).closeMessage().closeBundle();
udp.send(buffer.data(), packet.size());```

@yohawing
Copy link
Author

Only Windows

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment