comparison src/IOHandler.java @ 3:fe4469e7915a default tip

change remove() to key.cancel()
author kazz
date Sat, 22 Jan 2011 15:04:49 +0900
parents d5d2ca53a832
children
comparison
equal deleted inserted replaced
2:d5d2ca53a832 3:fe4469e7915a
7 import java.security.NoSuchAlgorithmException; 7 import java.security.NoSuchAlgorithmException;
8 import java.util.HashMap; 8 import java.util.HashMap;
9 import java.util.regex.Matcher; 9 import java.util.regex.Matcher;
10 import java.util.regex.Pattern; 10 import java.util.regex.Pattern;
11 11
12
13 public class IOHandler implements Handler { 12 public class IOHandler implements Handler {
14 public static int BUFFERSIZE = 8192; 13 public static int BUFFERSIZE = 8192;
15 public HashMap<String, String> map = new HashMap<String, String>(); 14 public HashMap<String, String> map = new HashMap<String, String>();
16 15
17 @Override 16 @Override
18 public void handle(SelectionKey key) { 17 public void handle(SelectionKey key) {
19 if (!key.isReadable()) { 18 if (!key.isReadable()) {
20 key.selector().keys().remove(key); 19 key.cancel();
21 return; 20 return;
22 } 21 }
23 SocketChannel sChannel = (SocketChannel)key.channel(); 22 SocketChannel sChannel = (SocketChannel)key.channel();
24 ByteBuffer buffer = ByteBuffer.allocate(BUFFERSIZE); 23 ByteBuffer buffer = ByteBuffer.allocate(BUFFERSIZE);
25 try { 24 try {
41 buffer.get(key3); 40 buffer.get(key3);
42 byte[] resCode = generateResponseCode(key3); 41 byte[] resCode = generateResponseCode(key3);
43 ByteBuffer response = generateResponse(resCode); 42 ByteBuffer response = generateResponse(resCode);
44 sChannel.write(response); 43 sChannel.write(response);
45 System.out.println("sent response"); 44 System.out.println("sent response");
45 } else {
46 key.cancel();
46 } 47 }
47 } catch (IOException e) { 48 } catch (IOException e) {
48 e.printStackTrace(); 49 e.printStackTrace();
49 } 50 }
50 } 51 }