아래는 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 |