반응형
# 서버 소켓 코드
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 |