Programming/C# - Window

C#/ TCP-IP 통신

esoog Polaris 2023. 9. 27. 11:19
반응형

# 서버 소켓 코드

 

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

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            // (1) IP 주소와 포트를 지정하고 TCP 서버 소켓 생성
            TcpListener serverSocket = new TcpListener(IPAddress.Parse("192.168.19.111"), 1111);

            try
            {
                serverSocket.Start(); // 서버 소켓 시작
                Console.WriteLine("서버가 시작되었습니다. 클라이언트 연결을 기다립니다...");

                // (2) 클라이언트의 연결을 기다림
                TcpClient clientSocket = serverSocket.AcceptTcpClient();
                Console.WriteLine("클라이언트가 연결되었습니다.");

                // (3) 클라이언트로부터 데이터 받기
                byte[] receiveBuffer = new byte[65535];
                int bytesRead = clientSocket.GetStream().Read(receiveBuffer, 0, receiveBuffer.Length);

                // (4) 받은 데이터 출력
                string receivedData = Encoding.UTF8.GetString(receiveBuffer, 0, bytesRead);
                Console.WriteLine("받은 데이터: " + receivedData);

                // (5) 클라이언트 소켓 및 서버 소켓 닫기
                clientSocket.Close();
                serverSocket.Stop();
            }
            catch (Exception ex)
            {
                Console.WriteLine("오류 발생: " + ex.Message);
            }

            Console.WriteLine("프로그램을 종료하려면 아무 키나 누르세요...");
            Console.ReadKey();
        }
    }
}

 

 

 

 

# 클라이언트 소켓 코드

 

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

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            // (1) 서버의 IP 주소와 포트 번호 지정
            string serverIP = "192.168.19.111";
            int serverPort = 1111;

            try
            {
                // (2) 서버에 연결
                TcpClient clientSocket = new TcpClient(serverIP, serverPort);
                Console.WriteLine("서버에 연결되었습니다.");

                // (3) 데이터 전송
                string messageToSend = "Hello";
                byte[] messageBytes = Encoding.UTF8.GetBytes(messageToSend);
                clientSocket.GetStream().Write(messageBytes, 0, messageBytes.Length);
                Console.WriteLine($"전송한 데이터: {messageToSend}");

                // (4) 클라이언트 소켓 닫기
                clientSocket.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine($"오류 발생: {ex.Message}");
            }

            Console.WriteLine("프로그램을 종료하려면 아무 키나 누르세요...");
            Console.ReadKey();
        }
    }
}
728x90

'Programming > C# - Window' 카테고리의 다른 글

C#/ 스트림(stream)  (0) 2023.10.10
C#/ CefSharp 사용  (0) 2023.10.10
C#/ NModbus4(Modbus) 모드버스  (0) 2023.09.27
C#/ API를 사용하여 JSON파일 읽기  (0) 2023.09.27
C#/ SQL server 사용  (0) 2023.09.04