본문 바로가기
제가 만든 프로그램

VB.NET으로 socket을 이용한 멀티채팅 프로그램을 만들어보다.

by edupicker(체르니) 2008. 7. 2.
프로그래밍을 작성하다보면 궁극적으로 짜보고 싶은 것은 네트워킹 프로그램일 것이다.
왜냐하면 하나의 네트워킹 프로그램을 짠다는 것은 그 속에 여러가지를 포함하고 있기 때문인 것 같다.

예전에 C 언어를 이용해서 Linux 기반 ICMP 프로그램(일명 ping 테스터기)를 짜거나 오늘 올리는 내용인
멀티채팅 프로그램을 짜보고 VB 6.0으로 socket 프로그램을 작성해 본후 그동안 손을 놓았었는데
지금  VB.NET수업 한 학원에 받는데 1개월 수업과정중 3주째인데 아직도 컨트롤 사용법을 설명하고 있어
심심해서 멀티채팅 프로그램을 만들어 보았다.

웹을 검색해보면 멀티채팅 프로그램 소스들은 참 많이 돌아다니지만 제대로 동작되지 않는 소스들도 많고
물론 .NET 버전이 달라서 안될 수도 있겠지만 그런 소스로 책에 버젓이 고급 프로그래밍인양 등장하는 것을
보면 조금은 그렇다는 생각이 든다. 외국서적들을 보면 그들은 거의 모든 소스를 테스트하고 책을 내던데..쩝.

이번 프로그램은 너무도 간단하면서 아직도 에러처리나 자동으로 돌아가도록 하는 windows 서비스에 등록하는 것도 안했구.발생하는 것에 대해 로그같은 것을 남기는 부분 등도 처리하지 않았지만.
지금까지 한 것을 올려봅니다.

개발환경
사용언어 : VB.NET 2005
NET 버전 : 2.0
운영체제 : Windows 2003서버

서버 실행 후 서버 프로세스 확인하기
사용자 삽입 이미지

위 프로그램을 받을 수 있는 곳
http://technet.microsoft.com/ko-kr/sysinternals/bb897437(en-us).aspx


서버를 실행시킨 후 클라이언트를 2개 실행시켜 본 결과
사용자 삽입 이미지

현재로는 소스는 공개할 생각은 없으며 추후 강의를 할 기회가 있거나 책을 낼 기회가 된다면 이번 것 보다
버전 업된 상태의 소스를 공개해 볼 생각입니다.

끝으로 작성하는데 한 가지도 유용한 것을 알려드리면

한글이 주고 받을 때 깨지는데  데이터를 주고 받을 때
System.Text.Encoding.Default.GetBytes(message)
이런 식을 주고 받으면 한글이 깨지지 않고 전송되는 것을 알려드립니다.