티스토리 뷰

3학년 2학기 임베디드시간에 나온 기말과제.

임베디드시간에 리눅스 커널에 대해서 공부하더니 기말프로젝트로 나온게 1:1전송과 파일전송 프로그램이였다.
TCP/IP는.. 수업시간에 간단한 예제 몇개만 보여주고 알아서 해오라~ 라고 던져준 과제 =ㅂ=)乃.

윤성우님의 TCP/IP 책과 ncurses library문서를 참고해서 제작한 프로그램이다. 이 프로그램을 만들었던게 12월 세번째 주였는데, 이미 회사에 취업해 있던 상태 였으며 하루는 서울에 있는 회사에 출근을 하고 하루는 천안에 있는 학교에 기말고사 시험을 보러 가는 무지막지한 주였다.

User inserted image

구현할때 가장 많이 시간을 들였던건 ncurses library쓰는것. 사실 이 라이브러리가 있다는걸 발견하는것도 오래 걸렸다. kdlp도 뒤지고 google도 뒤지고 해서 알게 되었고, 다행히 library정리는 잘 되어 있어서 쓰는데는 많은 삽질을 하진 않았다.

ncurses library를 쓰게된 이유가 Turbo C의 gotoxy 기능과 getx, gety의 기능을 Linux에서 구현하기 위해서 였는데, 이 기능이 있어야만 상대방으로부터 받은 메시지를 출력하는 부분과 자신의 메시지를 입력하는 부분을 따로 분리해서 구현할 수 있기 때문이다. 안그러면 자신이 메시지 입력하는도중에 상대방으로부터 메시지가 도착하면 골치아픈 상황이 발생하게 된다.

재미있는거는, 프로그램에서 사용하는 통신프로토콜을 수업시간에 조교형이 주었다. 예를들어 채팅 메시지는 TEXT내용 이런식으로 전송된다 라는걸. 하지만 다른 친구들이 만든 프로그램과 테스트를 해보면 제대로 작동이 안된다. 서로 너가 프로토콜을 지키지 않은거야 라고 우기기만 할뿐이다.

3일정도 밤세며 공부하고 배워가며 작업을 했었는데 프로젝트 검사할때는 너무 금방 끝나버려서 아쉽기도했다. 다른 친구들은 교수님께서 실행시켜보고 Vim 사용법이라던지 소켓프로그래밍에대해서 물어보던데 난 실행만 시켰더니 리포트 내라고만 하시고 가셨....

인터페이스를 이쁘게, UI를 편하게, 파일전송을 효과적으로, 글씨 입력과 출력되는부분이 분류되게 등등을 신경쓰다보니 코드가 1100줄이 넘어갔다. Makefile 문법을 제대로 아는것도 아니고 파일 단위로 나누기도 귀찮아서, 프로젝트는 파일 하나에 모든 함수를 다 구현했었는데, Vim에서 500라인까지는 어찌저찌 할 수 있었으나 그 이상이 되니 Vim에디터로는 도저히 진행이 어려워.... EditPlus로 작업을 하고.. ftp에 업로드하고, 리눅스에서 받아 컴파일해 테스트했다 =_=;;;;;;;;

TCP/IP를 처음 사용해본 프로젝트였으며, 오랫만에 원없이 밤세며 코딩해본 프로그램이며, 리눅스에서 처음 진행한 프로젝트라는거에 의의를 두고 싶은.. 프로젝트.

회사에 입사해서 이제 쉴만큼 쉬었으니 프로그래밍에 다시 빠져보자 !!
댓글
  • 프로필사진 액운.. 저기 제가 제작하려는 TCP/IP 관련 자료를 찾다가 들리게되었습니다..제가 생각하던 딱 그것을 방장님께서 구현하셨내요.. 임베디드는 거의 완전 초짜이구요..꼭 해보고싶은대 구현하려면 머부터 해야할지 설명좀 부탁드려도 될까요?... 정말 해보고싶어서 그렇습니다.. 2007.03.16 00:20
  • 프로필사진 Favicon of http://mastojun.net BlogIcon Mastojun 이미 본문에 다 적었습니다.
    윤성우님의 TCP/IP 소켓 프로그래밍 이라는 책과, google에서 ncurses library를 검색해서 본 레퍼런스페이지.
    이 두개를 참고해서 만든 것 입니다.
    2007.03.16 01:07
  • 프로필사진 Favicon of http://blog.naver.com/kingmbc2 BlogIcon 후후,, 수고했군,,좋은거 배워간다..

    ncurses library
    2007.06.11 17:34
  • 프로필사진 Favicon of http://mastojun.net BlogIcon Mastojun 형한텐.. 소스코드 보내드렸던거 같은데 =_=;;; 2007.06.12 11:40
  • 프로필사진 Favicon of http://www.cyworld.com/01080090526 BlogIcon gimsu 저....제가 공부하고 있는 것에 관해 딱 정확하게 구현하셨는데.....
    혹시 소스코드 첨부와 실행방법을 알수있을지요?
    2011.07.29 08:39
  • 프로필사진 Favicon of https://blog.mastojun.net BlogIcon Mastojun 이제 드려도 되나요? 그런데 어떻게 드리지요? @.@ 2011.08.14 02:06 신고
  • 프로필사진 비밀댓글입니다 2015.12.08 14:10
  • 프로필사진 Favicon of https://blog.mastojun.net BlogIcon Mastojun 지금은 어디있는지 모릅니다 ;ㅂ;).. 2016.02.12 23:00 신고
댓글쓰기 폼