자바도 nio 패키지 내에서 channel을 통한 buffer의 scatter/gater를 지원하고 있습니다.
현재, 프로젝트의 프로토콜이 header + body의 구조를 띄고 있고, 매번 single buffer에 put, send 하고 있고, 받을 때도 역시, 똑같이 하고 있습니다. 그걸 아래의 튜토리얼에 있는 scatter/gater 방식을 통해서 코드를 깔끔하게 만들 수 있습니다.
* read
* write
위 예제와, 좀 더 자세한 내용 아래의 주소를 통해서 보실 수 있습니다. ^^
http://tutorials.jenkov.com/java-nio/scatter-gather.html
현재, 프로젝트의 프로토콜이 header + body의 구조를 띄고 있고, 매번 single buffer에 put, send 하고 있고, 받을 때도 역시, 똑같이 하고 있습니다. 그걸 아래의 튜토리얼에 있는 scatter/gater 방식을 통해서 코드를 깔끔하게 만들 수 있습니다.
* read
ByteBuffer header = ByteBuffer.allocate(128);
ByteBuffer body = ByteBuffer.allocate(1024);
ByteBuffer[] bufferArray = { header, body };
channel.read(buffers);
ByteBuffer body = ByteBuffer.allocate(1024);
ByteBuffer[] bufferArray = { header, body };
channel.read(buffers);
* write
ByteBuffer header = ByteBuffer.allocate(128);
ByteBuffer body = ByteBuffer.allocate(1024);
ByteBuffer[] bufferArray = { header, body };
channel.write(buffers);
ByteBuffer body = ByteBuffer.allocate(1024);
ByteBuffer[] bufferArray = { header, body };
channel.write(buffers);
위 예제와, 좀 더 자세한 내용 아래의 주소를 통해서 보실 수 있습니다. ^^
http://tutorials.jenkov.com/java-nio/scatter-gather.html
'Java' 카테고리의 다른 글
| Updater/Launcher using jnlp (0) | 2011/07/18 |
|---|---|
| Java에서 LRUCache 사용과 문제 그리고 해결방안 (0) | 2011/03/02 |
| java nio scatter/gater (0) | 2010/12/07 |
| non-blocking SocketChannel에서 read() timeout 처리하기.. (0) | 2010/09/17 |
| non-blocking SocketChannel에서 끝까지 읽어오기.. (0) | 2010/09/15 |
nio.pdf