Visual C++ .NET/Network/Udp Client

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

Udp Client

 
#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));
}


Udp Client by Socket class

 
#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));
}


Udp Client by UdpClient class

 
#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));
}


Udp Client with Socket

 
#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));
}