UDP 傳送與接收 UDP 傳送與接收
  .NET       ez      2012-06-04

TCP(Transmission Control Protocol)

UDP(User Datagram Protocol)

TCP這個協定最主要的特色在於傳輸資料時,需要驗證資 料,確保正確性。所以花的時間稍多一點。

而UDP這個協定最主要的特色在於傳輸資料時,不需要驗 證資料,不保證正確性,所以比較省時間。

而一般來說, 像是多媒體串流(streaming)就是使用這種協定。

Server端

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class UdpServer
{
    public static void Main()
    {
        IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 8888);
        Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        newsock.Bind(ipep);
        Console.WriteLine("Waiting for a client...");
        IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
        EndPoint Remote = (EndPoint)(sender);
        while(true)
        {
            byte[] data = new byte[1024];
            int recv = newsock.ReceiveFrom(data, ref Remote);
            Console.WriteLine(Encoding.UTF8.GetString(data, 0, recv));
        }
    }
}

Client端

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class UdpClient
{
    public static void Main(string[] args)
    {
        IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("server ip"), 8888);
        Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        while(true)
        {
            string input = Console.ReadLine();
            if (input == "exit") break;
            server.SendTo(Encoding.UTF8.GetBytes(input), ipep);
        }
        Console.WriteLine("Stopping client");
        server.Close();
    }
}

標籤:   .NET

我要留言