8월 15일

 p.386

 -NIO Buffer Class

  위치변경 method

  - flip: limit 값을 현재 position으로 지정한 후, postion을 0(가장 앞으로) 이동 (limit 값 변경, rewind는 limit 값 변경x)

  - mark: 현재 포지션을 mark

  - reset: 버퍼의 position을 mark 한 곳으로 이동

  - rewind: 현재 버퍼의 position을 0으로 이동

  - remaining : limit-position 계산 결과를 리턴

  - hasRemaining : postion과 limit 값에 차이가 있을 경우 true 리턴

  - clear: 버퍼를 지우고 현재 position을 0으로 이동하며 , limit값을 버퍼의 크기로 변경.



p.394

 *TCP: 데이터 전송은 보장, 느리다, 비싸다

 *UDP: 데이터 유실이 있음, 빠르다, 싸다.


-ServerSocket

 * ServerSocket(): 서버 소켓 객체만 생성

 * ServerSocket(int port) : 지정된 포트를 사용하는 서버 소켓을 생성

 * ServerSocket(int port, int backlog) : 지정된 포트와 backlog 개수를 가지는 소켓을 생성

 * ServerSocket : 지정된 포트와 backlog 개수를 가지는 소켓을 생성하며, bindAddr에 있는 주소에서의 접근만을 허용.


*backlog 개수를 지정하지 않을시 50개가 default


  * server.Accept새로운 소켓 연결을 기다리고, 연결이되면 Sockect 객체를 리턴

  * server.close :  소켓연결을 종료.


- Socket

 * Socket: 소켓 객체 생성

 * Socket(Proxy proxy) : 프록시 관련 설정과 함께 소켓 객체만 생성

 * Socket(SocketImpl impl) : 사용자가 지정한 SocketImpl 객체를 사용하여 소켓 객체만 생성

 * Socket(IntetAddress address, int port): 소켓 객체 생성 후 address와 port를 사용하는 서버에 연결

 * Socket(InetAddress address, int port, InetAddress localAddr, int localPort) : 소켓 객체 생성 후 address와 port를 사용하는 서버에 연결하며, 지정한 localAddr와 localPort에 접속.

 * Socket(String host, int port) : 소켓 객체 생성 후 host와 port를 사용하는 서버에 연결

 * Socekt(String host, int port, InetAddress localAddr, int localPort): 소켓에 객체 생성 후 host와 port를 사용하는 서버에 연결하며, 지정된 localAddr와 localPort에 접속


- Socket 관련 에러

  *java.net.BindException : Address alreay in use 

   - 서버를 띄워놓고 또 띄웠을때 발생, 이미 지정된 port 번호를 사용하고 있기 때문에 동일한 port 번호를 사용할 수 없기 때문. 이미 띄워놓은 프로세스가 있는지 jps라는 명령으로확인.

     * jps - 자바 가상머신 프로세스 상태 도구(Java Virtual Machine Process Status Tool)

 

  *java.net.ConnectException : Connection refused 

   - 서버를 뛰워놓지 않고 클라이언트 프로그램만 수행했을때 발생한다. 받을 서버가 없어 던질 곳도 없기 때문임. 서버재시작















+ Recent posts