728x90

클라이언트

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace _20210202_UDP_Server
{
    class Program
    {
        static void Main(string[] args)
        {   
            // (1) UdpClient 객체 성성. 포트 10262 에서 Listening
            UdpClient srv = new UdpClient(10262);

            // 클라이언트 IP를 담을 변수
            IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0);

            Console.WriteLine("에코 서버 시작");

            while (true)
            {
                // (2) 데이타 수신
                byte[] dgram = srv.Receive(ref remoteEP);
                Console.WriteLine("[Receive] {0} 로부터 {1} 바이트 수신", remoteEP.ToString(), dgram.Length);
                Console.WriteLine("[Receive] {0} ", Encoding.UTF8.GetString(dgram));

                // (3) 데이타 송신
                srv.Send(dgram, dgram.Length, remoteEP);
                Console.WriteLine("[Send] {0} 로 {1} 바이트 송신", remoteEP.ToString(), dgram.Length);
                Console.WriteLine("[Send] {0} ", Encoding.UTF8.GetString(dgram));
            }
        }
    }
}

서버

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace _20210201_UDP_Test_2
{
    class Program
    {
        static void Main(string[] args)
        {
            // (1) UdpClient 객체 성성
            UdpClient cli = new UdpClient();

            // string --> byte[]
            string msg = "KDT_PLC_M";
            byte[] datagram = Encoding.UTF8.GetBytes(msg);

            // (2) 데이타 송신
            cli.Send(datagram, datagram.Length, "192.1.2.70", 10262);
            Console.WriteLine("[Send] 192.1.20.70:10262 로 {0} 바이트 전송", datagram.Length);
            Console.WriteLine("[Send] {0}", Encoding.UTF8.GetString(datagram));

            // (3) 데이타 수신
            IPEndPoint epRemote = new IPEndPoint(IPAddress.Any, 0);
            byte[] bytes = cli.Receive(ref epRemote);
            Console.WriteLine("[Receive] {0} 로부터 {1} 바이트 수신", epRemote.ToString(), bytes.Length);
            Console.WriteLine("[Receive] {0}", Encoding.UTF8.GetString(bytes));

            // (4) UdpClient 객체 닫기
            cli.Close();

            // 꺼짐 방지
            Console.ReadLine();
        }
    }
}

 

간단한 C# UDP 서버와 클라이언트 코드 입니다.

다음에는 비동기로 작성 해봐야겠습니다.

 

www.csharpstudy.com/net/article/7-UDP-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8

 

UDP 클라이언트 - C# 프로그래밍 배우기 (Learn C# Programming)

UDP 클라이언트 UDP 프로토콜 UDP(User Datagram Protocol)는 TCP와 같이 IP에 기반한 Transport Layer 프로토콜이다. UDP는 단 2가지 기능 만을 수행하는데, IP 위에 포트를 더하는 일과 데이타 Corruption을 감지해

www.csharpstudy.com

참조 했습니다.

728x90

+ Recent posts