Visual C++ .NET/Network/Udp Client

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Udp Client

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Net; using namespace System::Net::Sockets; using namespace System::Text; void main() {

   Socket^ socket = gcnew Socket(AddressFamily::InterNetwork, SocketType::Dgram, ProtocolType::Udp);
   EndPoint^ Remote = gcnew IPEndPoint(IPAddress::Parse("127.0.0.1"), 54321);
   if ((int)socket->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::ReceiveTimeout) < 5000)
   {
       socket->SetSocketOption(SocketOptionLevel::Socket, SocketOptionName::ReceiveTimeout, 5000 );
   }
   String^ input = "input";
   array<unsigned char>^ message = Encoding::ASCII->GetBytes(input);
   socket->SendTo(message, Remote);
   message = gcnew array<unsigned char>(1024);
   int recv = socket->ReceiveFrom(message, Remote);
   Console::WriteLine("[{0}] {1}", Remote->ToString(), Encoding::ASCII->GetString(message, 0, recv));

}

 </source>


Udp Client by Socket class

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Net; using namespace System::Net::Sockets; using namespace System::Text; void main() {

   Socket^ socket = gcnew Socket(AddressFamily::InterNetwork, 
                                 SocketType::Dgram, ProtocolType::Udp);
   EndPoint^ Remote = gcnew IPEndPoint(IPAddress::Parse("127.0.0.1"), 
                                       54321);
   String^ input = "asdf";
   array<unsigned char>^ message = Encoding::ASCII->GetBytes(input);
   socket->SendTo(message, Remote);
   message = gcnew array<unsigned char>(1024);
   int recv = socket->ReceiveFrom(message, Remote);
   Console::WriteLine("[{0}] {1}", Remote->ToString(), Encoding::ASCII->GetString(message, 0, recv));

}

 </source>


Udp Client by UdpClient class

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Net; using namespace System::Net::Sockets; using namespace System::Text; void main() {

   UdpClient^ client = gcnew UdpClient();
   IPEndPoint^ Remote = gcnew IPEndPoint(IPAddress::Parse("127.0.0.1"), 54321);
   String^ input = "input";
   
   array<unsigned char>^ message = Encoding::ASCII->GetBytes(input);
   client->Send(message, message->Length, Remote);
   message = client->Receive(Remote);
   Console::WriteLine("[{0}] {1}", Remote->ToString(), Encoding::ASCII->GetString(message, 0, message->Length));

}

 </source>


Udp Client with Socket

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Net; using namespace System::Net::Sockets; using namespace System::Text; void main() {

   Socket^ socket = gcnew Socket(AddressFamily::InterNetwork, 
                                 SocketType::Dgram, ProtocolType::Udp);
   EndPoint^ Remote = gcnew IPEndPoint(IPAddress::Parse("127.0.0.1"), 
                                       54321);
   socket->Connect(Remote);
   String^ input = "asdf";
   array<unsigned char>^ message = Encoding::ASCII->GetBytes(input);
   socket->Send(message);
   message = gcnew array<unsigned char>(1024);
   int recv = socket->Receive(message);
   Console::WriteLine("[{0}] {1}", Remote->ToString(), Encoding::ASCII->GetString(message, 0, recv));

}

 </source>