프로그램 전체 구조
1. server는 동작버튼을 누름 (client 접속 대기 = accept함수로 기다림)
중지버튼을 누르면 client접속을 받지 않음 또한, 리스트박스를 삭제하고 다시 생성함
2. server는 동작하고 있을 때 client가 실행됨
server의 접속한 사람 수 1이 증가됨
server의 화면에 접속해 있는 사용자 ip, 접속해 있는 사용자 수가 표시됨
3. client가 접속해 있는 상태에서 server가 중지되면(sever가 종료했다가 다시 동작버튼을 눌러도 중지와 같은 현상) client는 정보를 보내고 그에 대한 응답을 받을 때(recv함수) SOCKET_ERROR를 받게 되고 이에 client는 server와의 연결이 끊겼다는 정보를
messagebox로 화면에 띄우고 client는 종료하게 됨
<<4. 회원가입 버튼을 누르면 모달리스 창이 생성됨
5. 회원정보를 입력하고 전송버튼을 누르면 client는 server에게 회원정보를 전달
6. server는 client로부터 받은 회원정보를 database에 저장
7. 중복된 정보가 있는지 확인
중복된 내용이 있으면 server는 client에게 정보가 중복되어 저장할 수 없음을 나타내는
정보를 보냄
8. client는 받은 정보에 따라 처리
1) 정보가 중복되었으면 다시 정보가 중복되었으니 다시 입력하라는 messagebox를 화면
에 띄움
2) 정보가 중복되지 않았으면 모달리스 창은 종료됨>>
9. client가 id와 pw를 입력하고 id와 pw의 정보를 server에 보냄
10. server는 받은 정보를 database에 찾음
11. 찾은 내용에 따라 server는 client에게 정보전달
1) 정보가 있으면 server는 client에게 정보가 있음을 나타내는 정보 전달
2) 정보가 없으면 server는 client에게 정보가 없음을 나타내는 정보 전달
12. client는 받은 정보에 따라 처리
1) 정보가 없으면 로그인 정보가 없음을 messagebox로 화면에 띄움
2) 정보가 있으면 윈도우 창이 변경됨(윈도우 창 크기 변경, 윈도우 안의 컨트롤 삭제 및
새로운 컨트롤들 생성)
13. 접속해있는 사람들의 정보가 화면에 보임
(주기적으로 client가 서버에게 정보요청 메시지를 보내면 server가 정보를 보내줌)
14. 사람들이 컨트롤에 글을 입력하고 엔터 or 전송버튼을 누름
15. 글 정보가 client에서 server로 전달
server에 client로부터 받은 정보를 컨트롤에 표시
16. server는 받은 사람들의 글의 내용을 접속한 모든 client에게 전달
17. client는 server에서 받은 client의 글의 내용을 화면에 표시
18. 로그아웃
client화면이 맨 처음 로그인 화면으로 바뀜
19. client 프로그램 종료
server에 접속한 사람 수가 1이 줄어듬
접속이 끊긴 client의 ip가 컨트롤화면에서 삭제됨
(화면에 접속되어 있는 client의 전체ip를 다시 컨트롤에 표시)