| |
服务器sockets
列表9.2是一个服务器应用程序的一部分.
列表9.2 一个简单的服务器程序
/** * 一个监听端口并提供html文档的程序. */ class simplewebserver { public static void main(string args[]) { serversocket serversocket = null; socket clientsocket = null; int connects = 0; try { { // 建立一个服务器socket serversocket = new serversocket(80, 5); while (connects < 5) { // 等待连接 clientsocket = serversocket.accept(); //服务连接 serviceclient(clientsocket); connects++; } serversocket.close(); } catch (ioexception ioe) { system.out.println("error in simplewebserver: " + ioe); } } public static void serviceclient(socket client) throws ioexception { datainputstream inbound = null; dataoutputstream outbound = null; try { // 得到io流 inbound = new datainputstream( client.getinputstream()); outbound = new dataoutputstream( client.getoutputstream()); //格式化输出(回应头和很少的html文档) stringbuffer buffer = prepareoutput(); string inputline; while ((inputline = inbound.readline()) != null) { //如果到了http请求的尾部,就发送回应 if ( inputline.equals("") ) { outbound.writebytes(buffer.tostring()); break; } } } finally { // 清除 system.out.println("cleaning up connection: " + client); tln("cleaning up connection: " + client); outbound.close(); inbound.close(); client.close(); client.close(); } }
|
|