HTML5教程

Web前端架构师

本文主要是介绍Web前端架构师,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
## download:[Web前端架构师](http://www.97yrbl.com/t-533.html?_dsign=beab9d38) ## download:[Web前端架构师](http://www.97yrbl.com/t-533.html?_dsign=beab9d38) ### [Web前端架构师](http://www.97yrbl.com/t-533.html?_dsign=beab9d38) 超大复杂项目+高端技术+大厂规范+全局架构思维 系统培养大厂P7技术专家/中小厂前端Leader 6~8个月,让3年+前端完成质的飞跃 ######################################################################################################################### import java.io.*; import java.nio.*; import java.nio.channels.*; import java.net.*; import java.util.*; import java.nio.charset.*; import java.lang.*; public class NonBlockingServer { public Selector sel = null; public ServerSocketChannel server = null; public SocketChannel socket = null; public int port = 4900; String result = null; public NonBlockingServer() { System.out.println("Inside default ctor"); } public NonBlockingServer(int port) { System.out.println("Inside the other ctor"); port = port; } public void initializeOperations() throws IOException,UnknownHostException { System.out.println("Inside initialization"); sel = Selector.open(); server = ServerSocketChannel.open(); server.configureBlocking(false); InetAddress ia = InetAddress.getLocalHost(); InetSocketAddress isa = new InetSocketAddress(ia,port); server.socket().bind(isa); } public void startServer() throws IOException { System.out.println("Inside startserver"); initializeOperations(); System.out.println("Abt to block on select()"); SelectionKey acceptKey = server.register(sel, SelectionKey.OP_ACCEPT ); while (acceptKey.selector().select() > 0 ) { Set readyKeys = sel.selectedKeys(); Iterator it = readyKeys.iterator(); while (it.hasNext()) { SelectionKey key = (SelectionKey)it.next(); it.remove(); if (key.isAcceptable()) { System.out.println("Key is Acceptable"); ServerSocketChannel ssc = (ServerSocketChannel) key.channel(); socket = (SocketChannel) ssc.accept(); socket.configureBlocking(false); SelectionKey another = socket.register(sel,SelectionKey.OP_READ|SelectionKey.OP_WRITE); } if (key.isReadable()) { System.out.println("Key is readable"); String ret = readMessage(key); if (ret.length() > 0) { writeMessage(socket,ret); } } if (key.isWritable()) { //System.out.println("The key is writable"); String ret = readMessage(key); socket = (SocketChannel)key.channel(); if (result.length() > 0 ) { writeMessage(socket,ret); } } } } } public void writeMessage(SocketChannel socket,String ret) { System.out.println("Inside the loop"); if (ret.equals("quit") || ret.equals("shutdown")) { return; } File file = new File(ret); try { RandomAccessFile rdm = new RandomAccessFile(file,"r"); FileChannel fc = rdm.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(1024); fc.read(buffer); buffer.flip(); Charset set = Charset.forName("us-ascii"); CharsetDecoder dec = set.newDecoder(); CharBuffer charBuf = dec.decode(buffer); System.out.println(charBuf.toString()); buffer = ByteBuffer.wrap((charBuf.toString()).getBytes()); int nBytes = socket.write(buffer); System.out.println("nBytes = "+nBytes); result = null; } catch(Exception e) { e.printStackTrace(); } } public String readMessage(SelectionKey key) { int nBytes = 0; socket = (SocketChannel)key.channel(); ByteBuffer buf = ByteBuffer.allocate(1024); try { nBytes = socket.read(buf); buf.flip(); Charset charset = Charset.forName("us-ascii"); CharsetDecoder decoder = charset.newDecoder(); CharBuffer charBuffer = decoder.decode(buf); result = charBuffer.toString(); } catch(IOException e) { e.printStackTrace(); } return result; } public static void main(String args[]) { NonBlockingServer nb = new NonBlockingServer(); try { nb.startServer(); } catch (IOException e) { e.printStackTrace(); System.exit(-1); } } }
这篇关于Web前端架构师的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!