네트워크
네트워크 연습할 때는 방화벽 때문에 서버에서 클라이언트가 보내는 정보를 막을 수 있다. 따라서 "공용 네트워크 설정"에서 "방화벽 사용 안 함"으로 변경 후 연습해야 한다.
{네트워크 관련 명령어}
- ipconfig /all : 자신의 컴퓨터 주소 정보
- netstat -ano : 사용 중인 포트와 연결된 컴퓨터에 대한 정보 및 프로세스 ID 출력
- taskkill -p 프로세스아이디 /f : 프로세스 강제 종료
{java.net.InetAddress}
- 주소 정보와 관련된 클래스
- 객체 생성은 생성자를 이용하지 않고 static 메소드를 이용
- getLocalHost() : 자기 컴퓨터에 대한 주소 정보 리턴
- getByName(호스트 이름) : 호스트 이름에 해당하는 하나의 주소 정보 리턴
- getAllByName(호스트이름) : 호스트 이름에 해당하는 모든 주소 정보를 배열로 리턴
{TCP 통신}
- Server와 Client 간의 연결형 통신
- ServerSocket 클래스 : 접속을 당하는 쪽에서 생성하는 소켓.
포트번호 또는 포트번호와 통시접속자 수를 매개변수로 받아서 생성
accept()호출해서 클라이언트의 접속을 대시
클라이언트의 접속이 이루어지면 accept()는 클라이언트와 통신할 수 있는 Socket 객체를 리턴
- 접속하는 쪽에서는 Socket을 생성할 때 ip 주소와 포트번호를 이용해서 서버에 접속
{UDP 통신}
[DatagramSocket]
- UDP 통신을 위한 소켓 클래스
1) 생성
- DatagramSocket():보내는 쪽
- DatagramSocket(int port):받는 쪽
2) 메소드
-void send(DatagramPacket dp):데이터를 전송하는 메소드
-void receive(DatagramPacket dp):데이터를 읽어오는 메소드
[DatagramPacket]
- UDP 통신을 할 때 데이터를 저장하기 위한 클래스
1) DatagramPacket(byte [] b, int length):데이터를 전송받을 때 생성
2) DatagramPacket(byte [] b, int length, InetAddress addr, int port): addr의 주소에 port번호를 사용하는 서비스에 b배열에서 length만큼을 전송합니다.
3) byte [] getData(): 전송받은 데이터를 읽을 때 사용하는 메소드
- int getLength():전송받은 데이터의 크기
[String 과 byte 배열 변환]
- String 을 byte 배열로 변경 : getByte() 호출
- byte 배열을 가지고 String을 생성 : new String(바이트 배열, 시작위치, 길이)
'JAVA 공책 > 수업 메모' 카테고리의 다른 글
MulticastSoket (0) | 2018.07.24 |
---|---|
조건문&반복문 (0) | 2018.07.23 |
Map추가 & PrintWriter & Serializable : 복습 꼭 필요! (0) | 2018.07.23 |
java.io.File (0) | 2018.07.19 |
Swing (0) | 2018.07.19 |