본문 바로가기
기술자료/C#

C# 소켓 억셉트 Socket Asynchronous Accept 초간단 소스

by 와이즈캣 2021. 9. 15.
728x90
반응형



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

namespace Network_Async_Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Socket aSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            aSocket.Bind(new IPEndPoint(0, 5000));

            aSocket.Listen(5);

            aSocket.BeginAccept(new AsyncCallback(Jue_Listen), aSocket);

            while (true)
            {
                Console.Write(".");
                Thread.Sleep(500);
            }


        }

        static void Jue_Listen(IAsyncResult aIAsyncResult)
        {
            Console.WriteLine("게스트 접속");
            Socket aSocket = (Socket)(aIAsyncResult.AsyncState);

            Socket aClient = aSocket.EndAccept(aIAsyncResult);

            byte[] Tempdata = Encoding.UTF8.GetBytes("Apple\n\r");
            aClient.Send(Tempdata, Tempdata.Length, SocketFlags.None);
            aClient.Receive(Tempdata, Tempdata.Length, SocketFlags.None);
            aClient.Close();

            aSocket.BeginAccept(new AsyncCallback(Jue_Listen), aSocket);
        }
    }
}

 

 

실행 결과
Program.cs
0.00MB

 

Tested By VS2019

https://docs.microsoft.com/ko-kr/dotnet/framework/network-programming/asynchronous-server-socket-example

 

비동기 서버 소켓 예제

이 예제 .NET Framework 프로그램에서는 비동기 소켓을 사용하여 클라이언트에서 연결을 수신하는 서버를 만듭니다. 문자열을 수신하고 에코합니다.

docs.microsoft.com

 

728x90