Skip to content

Instantly share code, notes, and snippets.

@ochilab
Last active December 18, 2015 19:49
Show Gist options
  • Save ochilab/5835737 to your computer and use it in GitHub Desktop.
Save ochilab/5835737 to your computer and use it in GitHub Desktop.
UDPクライアントのサンプル。非同期通信版(C++/CLI)
using namespace System::Net;
using namespace System::Net::Sockets;
usc = gcnew UdpStateClass();
Socket ^listener = gcnew Socket(AddressFamily::InterNetwork, SocketType::Dgram, ProtocolType::Udp);
usc->endPnt = gcnew IPEndPoint(IPAddress::Any, 11000);//
usc->udpClt = gcnew UdpClient(11000); //接続相手
usc->udpClt->BeginReceive(gcnew AsyncCallback(this,&Clientwww::Form1::receiveCallback),usc);
//コールバック関数の定義
void receiveCallback(IAsyncResult ^ar){
ImageConverter ^imgconv = gcnew ImageConverter();
UdpClient ^uc = (safe_cast<UdpStateClass^>(ar->AsyncState))->udpClt;
IPEndPoint ^iep = (safe_cast<UdpStateClass^>(ar->AsyncState))->endPnt;
//受信データを配列に格納
receiveData = uc->EndReceive(ar, iep);
//コールバック再読み込み
usc->udpClt->BeginReceive(gcnew AsyncCallback(this,&Clientwww::Form1::receiveCallback),usc);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment