Mercurial > hg > Members > kazz > WebSocket
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 } |