Presentation is loading. Please wait.

Presentation is loading. Please wait.

Choi Seong Yun arche416@gmail.com 네트워크 프로그래밍 Choi Seong Yun arche416@gmail.com.

Similar presentations


Presentation on theme: "Choi Seong Yun arche416@gmail.com 네트워크 프로그래밍 Choi Seong Yun arche416@gmail.com."— Presentation transcript:

1 Choi Seong Yun arche416@gmail.com
네트워크 프로그래밍 Choi Seong Yun

2 TCP 서버-클라이언트 구조 - 서버 socket() bind() listen() accept() send(),recv()
소켓 생성 및 프로토콜 결정 bind() 지역 IP 주소와 지역 포트번호 결정 listen() TCP를 LISTENING 상태로 변경 accept() 접속한 클라이언트와 통신할 소켓을 생성, 이때 원격 IP주소와 원격포트번호가 결정 send(),recv() 클라이언트와 통신 수행

3 TCP 서버-클라이언트 구조 - 클라이언트 socket() connect() send(), recv()
소켓 생성 및 프로토콜 결정 connect() 서버에 접속하고 원격 IP 주소와 원격 포트 번호, 지역 IP 주소, 지역 포트 번 호 결정 send(), recv() 서버와 통신 수행

4 프로젝트 만들기 Win32 콘솔 응용프로그램 프로젝트 만들기
프로젝트>속성>구성속성>일반>문자집합> 설정 안 함으로 변경 프로젝트>속성>구성속성>링커>입력>추가종속성에서 ws2_32.lib 추가

5 서버 예제 맨위에 한줄 추가 #define _WINSOCK_DEPRECATED_NO_WARNINGS

6

7

8 클라이언트 예제

9

10

11 스레드란? CPU 시간을 할당받아 프로세스 메모리 영역에 있는 코드를 수행하고 데 이터를 사용하는 동적인 개념
프로세스는 코드, 데이터, 리소스를 파일에서 읽어들여 윈도우 운영체제가 할당해놓은 메모리 영역에 담고 있는 일종의 컨테이너로, 정적인 개념 응용 프로그램 실행시 최초로 생성되는 스레드를 주 스레드 또는 메인스레다라 부름 main() 함수에서 실행을 시작함 스레드를 추가하면 멀티스레드 응용프로그램이라 함 스레드 실행 상태의 저장과 복원 작업을 컨텍스트 전환이라 함

12

13

14 이클립스 사용!! Java 설치 Eclipse IDE for Java EE Developers 다운로드 설치

15 클라이언트 소켓 생성 Socket 클래스 java.net.* 에 정의되어 있음 클라이언트의 소켓
connect, send, recv, close, bind 기능을 수행함

16 Socket(InetAddress address, int port)
소켓만 구현해서 생성 Socket(InetAddress address, int port) connect까지 수행!! Socket(String host, int port) 주소를 문자열로 받음

17

18 실행할때~!!!! Run Configurations ☞ Arguments ☞ ☞ gold uranium silver copper lead

19 클라이언트 소켓의 정보 얻기 소켓의 정보 얻기 InetAddress getInetAddress() int getPort()
원격 주소 int getPort() 원격 포트 InetAddress getLocalAddress() 로컬 주소 int getLocalPort() 로컬 포트

20 실행할때~!!!! Run Configurations ☞ Arguments ☞

21 서버 소켓 생성 ServerSocket 클래스 java.net.* 에 정의되어 있음 서버에서 사용하는 소켓
send, recv, close, bind, listen, accept 기능을 수행함

22 ServerSocket(int port)
바인드를 따로 해주어야함 ServerSocket(int port) 포트에 바인드까지 해줌 ServerSocket(int port, int backlog) 연결 요청을 보관하는 큐의 길이

23

24 서버의 소켓 정보 얻기 InetAddress getInetAddress() int getLocalPort()
서버에 접속중인 IP 주소를 반환 int getLocalPort() 소켓에서 사용하는 포트번호 반환

25

26 과제

27 vs 과제 한 팀당 2명!!! 기간은 2주!!! 주제 : 구구단 게임 제출 Java 기반, TCP 동작으로 구현!
클라이언트 2개가 서로 구구단 게임 대결 서버는 백엔드로 동작! GUI 구현할 것! 제출 메일명 : 데통_구구단_학번_이름 vs

28 게임 룰 가위바위보로 선공격권 결정!!! 아래 과정을 반복 공격 받고 문제답 입력까지 제한시간은 2초!
공격자가 문제 입력하여 공격 수비자가 답안 입력하여 수비 성공하면 공수 교체, 실패하면 승패 결정되고 게임 종료 공격 받고 문제답 입력까지 제한시간은 2초! 구구단 문제 입력에 시간 제한은 없음!

29 채점 기준 게임 룰 준수!!! 에러, 버그 처리!!! GUI 완성도!!! 추가 기능 구현하면 가산점!!!
ex) 공격을 14 x 13을 준다던지...^^;; GUI 완성도!!! 추가 기능 구현하면 가산점!!! ex) 채팅? 방 만들기? Ready&Start 기능?


Download ppt "Choi Seong Yun arche416@gmail.com 네트워크 프로그래밍 Choi Seong Yun arche416@gmail.com."

Similar presentations


Ads by Google