ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C#으로 간단한 소켓 통신 프로그램 만들기
    IT/C# 2024. 12. 2. 07:06
    728x90
    반응형

    아래는 C#으로 간단한 소켓 통신 프로그램의 예제입니다. 클라이언트와 서버가 서로 메시지를 주고받을 수 있도록 구현한 코드입니다.

    서버 코드

    using System;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    
    class Server
    {
        static void Main(string[] args)
        {
            TcpListener server = null;
            try
            {
                int port = 12345;
                server = new TcpListener(IPAddress.Any, port);
                server.Start();
                Console.WriteLine("서버가 시작되었습니다. 클라이언트를 기다리는 중...");
    
                while (true)
                {
                    TcpClient client = server.AcceptTcpClient();
                    Console.WriteLine("클라이언트가 연결되었습니다.");
    
                    NetworkStream stream = client.GetStream();
    
                    byte[] buffer = new byte[256];
                    int bytesRead = stream.Read(buffer, 0, buffer.Length);
                    string receivedMessage = Encoding.UTF8.GetString(buffer, 0, bytesRead);
                    Console.WriteLine("수신 메시지: " + receivedMessage);
    
                    string responseMessage = "메시지 수신 완료!";
                    byte[] responseData = Encoding.UTF8.GetBytes(responseMessage);
                    stream.Write(responseData, 0, responseData.Length);
    
                    client.Close();
                }
            }
            finally
            {
                server?.Stop();
            }
        }
    }
    

    클라이언트 코드

    using System;
    using System.Net.Sockets;
    using System.Text;
    
    class Client
    {
        static void Main(string[] args)
        {
            try
            {
                string server = "127.0.0.1";
                int port = 12345;
    
                TcpClient client = new TcpClient(server, port);
                Console.WriteLine("서버에 연결되었습니다.");
    
                NetworkStream stream = client.GetStream();
    
                string message = "안녕하세요, 서버!";
                byte[] data = Encoding.UTF8.GetBytes(message);
                stream.Write(data, 0, data.Length);
                Console.WriteLine("메시지 전송: " + message);
    
                byte[] buffer = new byte[256];
                int bytesRead = stream.Read(buffer, 0, buffer.Length);
                string responseMessage = Encoding.UTF8.GetString(buffer, 0, bytesRead);
                Console.WriteLine("서버 응답: " + responseMessage);
    
                client.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("예외 발생: " + e.Message);
            }
        }
    }
    

    실행 방법

    1. 위 코드를 각각 Server.cs와 Client.cs로 저장합니다.
    2. 서버를 먼저 실행합니다.
    3. 클라이언트를 실행하여 서버와 통신을 테스트합니다.

    위 코드는 기본적인 TCP 소켓 통신의 구조를 포함하고 있으며, 메시지 전송 및 응답 기능을 수행합니다. 필요에 따라 확장하여 사용할 수 있습니다.

    728x90
Designed by Tistory.