-
C#으로 간단한 소켓 통신 프로그램 만들기IT/C# 2024. 12. 2. 07:06728x90반응형
아래는 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); } } }
실행 방법
- 위 코드를 각각 Server.cs와 Client.cs로 저장합니다.
- 서버를 먼저 실행합니다.
- 클라이언트를 실행하여 서버와 통신을 테스트합니다.
위 코드는 기본적인 TCP 소켓 통신의 구조를 포함하고 있으며, 메시지 전송 및 응답 기능을 수행합니다. 필요에 따라 확장하여 사용할 수 있습니다.
728x90'IT > C#' 카테고리의 다른 글
C#으로 GUI 애플리케이션을 개발할 때 사용 가능한 스프레드시트 (1) 2024.12.03 C#으로 Web 개발 방법 (53) 2024.12.01 C#으로 Windows GUI 프로그램 쉽게 작성하기 (50) 2024.11.30 C#으로 Unity 제어 방법 (51) 2024.11.29 VS Code에서 C# 개발 방법(사용법)은?! (49) 2024.11.27