15KauCN9 / ComNet9

0 stars 0 forks source link

Socket Programming #1

Open IHS49 opened 9 years ago

IHS49 commented 9 years ago

현재 상황 : 15/05/29 까지 파이썬 환경구축을 하고 제공된 소스코드를 이해하는 걸로 계획했었지만, 윈도우에서 소켓프로그래밍할때 WinError 10038의 오류 발생으로 윈도우에서 구현이 힘들다는것을 발견하여 잠시 막혀있음 이에대해 VM(가상머신)을 설치하여 따로 Linux나 Ubuntu를 설치하여 환경구축하기로 변경.

변경 및 추가 계획: 위와같이 환경을 구축하기 위해선 추가적인 시간이 필요할것이라 판단되어 15/05/29까지였던 환경구축과 소스코드이해를 15/06/01로 변경하기로 함. 순서는

  1. VM설치후 Ubuntu또는 Linux 탑재
  2. Linux Ubuntu에서 제공된 파이썬 코드를 테스트(이 두 os는 기본적으로 파이썬 지원하므로 윈도우와 달리 따로 파이썬 설치할 필요X)
  3. 테스트 후 소스코드 이해 및 편집 -> 이러기 위해선 VI를 사용할줄 알아야합니다. 가상머신을 사용하여 새로운 OS를 설치하는 것과 VI를 사용하는 방법은 구글이나 네이버에 많이 나와있으므로 참고할 수 있도록함.
IHS49 commented 9 years ago
  1. 6월 8일(월)에 완성을 해야하므로 7일인 내일(토) 만나는게 좋을듯 함. 각자 몇시에 모이는게 좋은지 의견바람.
  2. 현재 각자 소스에서 부족한 부분을 수정하고 있는데 내일 점검을 해야하므로 다들 수정된 것을 깃허브에 업로드하길 바람. 업로드시 누가 어느부분을 수정했는지 올릴때 commit에 올려주며 소스상에서도 어느부분을 변화를 줬는데 주석으로 명세하길 바람.
    그래야 내일 수정된 부분을 쉽게 종합할수 있으므로.

아니면 만나서 할일을 줄이기 위해 내가 올린 소스(Server_ihs, Client_ihs)에 자기가 수정한 부분을 추가하여 덮어씌워도 됨(덮어씌운다음에 작동유무 확인은 필수). 어차피 내 고유 버전들은 따로 보유하고 있으니 사라질 걱정은 안해도 됨.

  1. 지금 명세서가 우리가 작성한 소스보다 매우 간단하게 되어있음. 다시 말해 우리 소스는 정상 작동을 했을때의 명세서에 가깝다고봄. 예외처리시 필요한 작동방법이 명세되어있지 않음 (ex기존 접속돼있는데 다른곳에서 추가 접속시 상황 등등). 이에 대해 각자 명세 몇번을 어떻게 바꾸면 좋을지 아니면 뭘 추가하면 좋을지 Issue에다가 얘기를 하는게 좋을듯. 그리고 다른 조원이 명세를 이렇게 바꾸면 좋겠다~ 라고 말했을때 타당한 반론도 언제든지 환영.
Chahyojun commented 9 years ago

현재 클라이언트의 종료시 서버에 발생되는 루프 문제는 해결 됐나요??

IHS49 commented 9 years ago

exit\입력시 정상종료가 되나 클라이언트가 비정상적인 방법으로 종료시 되는 문제는 아직 잡지 못했습니다.

Chahyojun commented 9 years ago

두 사람이 대화도중 한 사람이 로그아웃하게 될 시, 새로운 사람이 대화신청을 할 때 busy라는 메세지가 출력됩니다. exit입력시 상태값변화가 필요해보입니다

Chahyojun commented 9 years ago

클라이언트의 강제종료시 예외처리로 서버한테 exit\ 메세지를 보내게하니까 되는것같습니다 보시고 확인해주세요

Chahyojun commented 9 years ago

깃허브 어렵네요 ㅜㅜ Client_ihs_2.py 파일입니다!

Chahyojun commented 9 years ago

파일 안올려지네요...;; 메일로보내겠습니다

IHS49 commented 9 years ago

교수님! 질문이 있습니다. 컴퓨터 네트워크를 수강하고 있는 9조입니다. 현재 저희가 명세서를 확인 및 수정하는 도중 의문점이 하나 생겨서 질문드립니다. 명세서란 How(어떻게)가 아닌 What(무엇)을 기술하는 자료로 알고 있습니다. 그리고 수업시간에 교수님께서 명세서만으로 Client짜는 사람, Server짜는 사람이 서로 떨어진 상태(의사소통 안되는상태)에서 프로그램을 완성시킬수 있어야 한다고 하셨습니다. 그래서 지금 명세서에서 Server,Client 쪽에서 소통을 할때 데이터를 어떤 형식으로 주고 받는지에 대해 기술을 했습니다.(ex. 로그인 할 경우 log\ID\PW, 초대를 할 경우 inv\ID 이런식). 그리고 Server, Client가 어떻게 돌아가는지에 대해는 명세하고 있지 않습니다. 예를 들어 '두 유저가 채팅시 그 유저들의 주소를 한 배열변수로 저장하여 채팅이 이루어지게 한다.' 이런식으로는 명세하고 있지 않습니다. 데이터가 어떤 형식으로 주고받는지만 안다면 Server,Client를 구현할때 물론 사람마다 그 안에 돌아가는 방식은 다르겠지만 프로그램 완성하는데에는 문제가 없을 것이라 생각되기 때문입니다. 하지만 생각해보니 Server,Client쪽에서 소통할때 데이터의 형식까지 명세를 하면 그게 What이 아니라 How에 좀더 가깝지 않나 싶습니다. 그래서 교수님께서 말씀하신 명세서가 제가 알고 있는 명세서(how가 아닌 what을 쓰는 명세서)와 다른게 아닌가 싶어서 글을 올립니다. 혹시 명세서에 How(어떻게)까지 기술을 해야하는건가요? 아니면 What과 데이터 주고받는 형식까지만 기술하는 건가요?

cheolgi commented 9 years ago

데이터 형식은 What이지 How가 아님

알고리즘이 How

    1. 7., 오후 7:11, IHS49 notifications@github.com 작성:

교수님! 질문이 있습니다. 현재 저희가 명세서를 확인 및 수정하는 도중 의문점이 하나 생겨서 질문드립니다. 명세서란 How(어떻게)가 아닌 What(무엇)을 기술하는 자료로 알고 있습니다. 그리고 수업시간에 교수님께서 명세서만으로 Client짜는 사람, Server짜는 사람이 서로 떨어진 상태(의사소통 안되는상태)에서 프로그램을 완성시킬수 있어야 한다고 하셨습니다. 그래서 지금 명세서에서 Server,Client 쪽에서 소통을 할때 데이터를 어떤 형식으로 주고 받는지에 대해 기술을 했습니다.(ex. 로그인 할 경우 log\ID\PW, 초대를 할 경우 inv\ID 이런식). 그리고 Server, Client가 어떻게 돌아가는지에 대해는 명세하고 있지 않습니다. 예를 들어 '두 유저가 채팅시 그 유저들의 주소를 한 배열변수로 저장하여 채팅이 이루어지게 한다.' 이런식으로는 명세하고 있지 않습니다. 데이터가 어떤 형식으로 주고받는지만 안다면 Server,Client를 구현할때 물론 사람마다 그 안에 돌아가는 방식은 다르겠지만 프로그램 완성하는데에는 문제가 없을 것이라 생각되기 때문입니다. 하지만 생각해보니 Server,Client쪽에서 소통할때 데이터의 형식까지 명세를 하면 그게 What이 아니라 How에 좀더 가깝지 않나 싶습니다. 그래서 교수님께서 말씀하신 명세서가 제가 알고 있는 명세서(how가 아닌 what을 쓰는 명세서)와 다른게 아닌가 싶어서 글을 올립니다. 혹시 명세서에 How(어떻게)까지 기술을 해야하는건가요? 아니면 What과 데이터 주고받는 형식까지만 기술하는 건가요?

— Reply to this email directly or view it on GitHub https://github.com/15KauCN9/ComNet9/issues/1#issuecomment-109732479.