-
C# ECHO 채팅서버 - 1:N 채팅을 위한 Thread, Client 클래스 생성스마트팩토리 개발자 교육(23.05.08 ~ 23.10.27)7/네트워크 기초이론 2023. 5. 19. 17:26
1. 클래스 안에서 사용할 TcpClient, NetworkStream 선언한다
public class Client { TcpClient tcpClient; NetworkStream stream;2. 클라이언트 생성시 서버에 연결 요청후 스트림을 만든다
public Client(string ip, int port) { tcpClient = new TcpClient(ip, port); stream = tcpClient.GetStream(); }3. 쓰레드에 사용 될 SendMessge,
이전에는 메시지를 받기와 기다리기를 동시해 했기에 올바른 통신이 되지 않아
쓰레드로 만들어 처리
public void SendMessge() { byte[] buffer; string msg; while (true) { msg = Console.ReadLine(); buffer = Encoding.UTF8.GetBytes(msg); stream.Write(buffer, 0, buffer.Length); } }4. 쓰레드에 사용 될 Receive
public void Receive() { int nbytes; string msg; byte[] buffer = new byte[1024]; while ((nbytes = stream.Read(buffer, 0, buffer.Length)) > 0) { msg = Encoding.UTF8.GetString(buffer, 0, nbytes); Console.WriteLine("메시지 입력: " + msg); } } }*main 코드
static void Main(string[] args) { Client client = new Client("127.0.0.1", 9876); Thread receiveThread = new Thread(client.Receive); Thread sendMessgeThread = new Thread(client.SendMessge); receiveThread.Start(); sendMessgeThread.Start(); }'스마트팩토리 개발자 교육(23.05.08 ~ 23.10.27)7 > 네트워크 기초이론' 카테고리의 다른 글
C# ECHO 채팅서버 - 1:N 채팅을 위한 Thread, 서버 클래스 생성 (0) 2023.05.19 C# ECHO 채팅서버 - 서버가 메시지 보내기 (0) 2023.05.18 C# - ECHO 채팅 서버 - 클라이언트 코드 (0) 2023.05.18 C# - ECHO 채팅 서버 - Server 코드 (0) 2023.05.18 NAT, 포트 포워딩, DNS (0) 2023.05.11