네트워크/채팅 프로그램 (5) 썸네일형 리스트형 [TCP/IP 소켓 프로그래밍] Winform 을 이용한 채팅 프로그램 - 3 각 클라이언트에서 작성한 메시지를 서버로 보내보는 작업까지 완료해보았다. 이제 조금 더 채팅 프로그램 스럽게 만들 수 있도록 각 클라이언트에서 보낸 메시지를 채팅 창에 띄워주는 작업을 해보자. 서버에서 클라이언트로 메시지 보내기 클라이언트에서 TcpClient 와 NetworkStream 을 이용해서 서버로 메시지를 전송했듯, 서버에서도 마찬가지로 메시지를 클라이언트 단으로 넘겨줄 수 있다. 그러면 일단 서버에서 클라이언트로 메시지를 넘기는 작업을 해보자. public static void RecvMsgFromClient(CLIENT_TYPE ClientType) { while (true) { byte[] Buff = new byte[1024]; int Nbytes; string ReceiveData =.. [TCP/IP 소켓 프로그래밍] Winform 을 이용한 채팅 프로그램 - 2 Winform 채팅 클라이언트 클라이언트 접속하기 UI 까지는 투박하지만 만들어 두었으니, 서버에 접속부터 해보자. 서버에서는 Thread 를 이용해서 모든 클라이언트의 Connect 를 체크해야했지만, 지금 Winform 채팅 프로그램에서 클라이언트에게 서버는 하나이기 때문에 서버에 접속하는것은 그리 어렵지 않다. 다음은 클라이언트의 서버 접속 코드다. public void ConnectToServer() { // (1) IP 주소와 포트를 지정하고 TCP 연결 while (true) { try { Console.WriteLine("Client 연결 요청 중 . . ."); Client = new TcpClient("127.0.0.1", 7000); Thread.Sleep(1000); break; } .. [TCP/IP 소켓 프로그래밍] Winform 을 이용한 채팅 프로그램 - 1 Winform 채팅 프로그램 컨셉 간단한 클라이언트 - 서버 구조를 살펴보았다. 클라이언트에서 사용자 입력을 받아 NetworkStream 을 이용해서 서버로 보내고 서버에서는 마찬가지로 스트림을 이용해서 메시지를 받아온다. 이번에는 좀 더 멋스럽게 Winform 을 이용해서 아주 간단한 양방향 채팅 프로그램 하나를 만들어보자. 기능자체는 아주 간단한 채팅 시스템을 만들어볼 생각이고 컨셉은 다음과 같다. 1. 서버와 클라이언트가 채팅을 하는것은 약간 이상하니까, 클라이언트 - 클라이언트 로 채팅을 하게끔 구현해보자. 그러면, 클라이언트는 서버로 메시지를 보내고 서버는 받아온 메시지를 다시 다른 클라이언트에게 전달해야한다. 2. 채팅 프로그램을 실행하면 서버에 접속한다. 3. 채팅 가능 시점은 두 클라이언.. [TCP/IP 소켓 프로그래밍] 사용자 입력을 이용한 통신 사용자의 입력을 받고, 이 데이터를 서버로 보내보는 작업을 해보자. 일단 클라이언트, 서버는 이전 포스팅에서 준비해놨으니, 이번에는 사용자 입력만 받아서 서버로 보내보자. 통신 방법 간단하게 사용자 입력을 받아서 변수 하나에 넣어두면 될것 같고, 이 변수를 인코딩을 통해 byte[] 형태로 만들어준뒤, Stream 을 통해 서버로 보내주는 작업이 필요해보인다. public class ClientManager { private static ClientManager clientMngInstance; private TcpClient Client; static public ClientManager Instance() { if(clientMngInstance == null) { clientMngInstance =.. [TCP/IP 소켓 프로그래밍] 서버와 통신하기 클라이언트 준비하기 서버 프로그램 하나, 클라이언트 프로그램 하나를 간단하게 만들어서 가볍게 문자열 정도 주고 받는 프로그램을 만들어보 려 한다. 먼저 클라이언트 쪽 코드를 작성해보자. class Program { static void Main(string[] args) { ClientManager.Instance().ConnectToServer(); } } Program 클래스를 이용해서 ClientManager 클래스 내부의 ConnectToServer() 함수를 호출한다. public void ConnectToServer() { // (1) IP 주소와 포트를 지정하고 TCP 연결 while (true) { try { Console.WriteLine("Client 연결 요청 중 . . ."); Cl.. 이전 1 다음