Visual C++ .NET/Network/Udp Server

Материал из .Net Framework эксперт
Версия от 12:06, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Udp Server

 
#include "stdafx.h"
using namespace System;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Text;

void main()
{
    IPEndPoint^ ipep = gcnew IPEndPoint(IPAddress::Any, 54321);
    UdpClient^ server = gcnew UdpClient(ipep);
    array<unsigned char>^ message;
    while(true) 
    {
        IPEndPoint^ Remote = gcnew IPEndPoint(IPAddress::Any, 0);
        message = server->Receive(Remote);
        Console::WriteLine("[{0}] [{1}]", 
            Remote->ToString(), Encoding::ASCII->GetString(message, 0, 
            message->Length));
        server->Send(message, message->Length, Remote);
    }
}


Udp Server 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);
    IPEndPoint^ ipep = gcnew IPEndPoint(IPAddress::Any, 54321);
    socket->Bind(ipep);
    while(true) 
    {
        array<unsigned char>^ message = gcnew array<unsigned char>(1024);
        EndPoint^ Remote = (EndPoint^) gcnew IPEndPoint(IPAddress::Any, 0);
        int recv = socket->ReceiveFrom(message, Remote);
        Console::WriteLine("[{0}] {1}", 
            Remote->ToString(), Encoding::ASCII->GetString(message, 0, recv));
        socket->SendTo(message, recv, SocketFlags::None, Remote);
    }
}