// Apache Thrift Frame Layer Network Transport Server in Java import java.io.UnsupportedEncodingException; import java.net.SocketException; import org.apache.thrift.transport.TFramedTransport; import org.apache.thrift.transport.TServerSocket; import org.apache.thrift.transport.TServerTransport; import org.apache.thrift.transport.TTransport; import org.apache.thrift.transport.TTransportException; public class ServerFrame { public static void main(String[] args) throws TTransportException, UnsupportedEncodingException, SocketException { final String msg = "Hello Thrift!\n"; final String stop_cmd = "STOP"; final int buf_size = 1024*8; byte[] buf = new byte[buf_size]; final int port = 9090; TServerTransport acceptor = new TServerSocket(port); acceptor.listen(); System.out.println("[Server] listening on port " + port); while (true) { TTransport trans_ep = acceptor.accept(); TTransport trans = new TFramedTransport(trans_ep); int len = trans.read(buf, 0, buf_size); String input = new String(buf, 0, len, "UTF-8"); System.out.println("[Server] handling request: " + input); trans.write(msg.getBytes()); trans.flush(); trans.close(); if (stop_cmd.regionMatches(0, input, 0, 4)) { break; } } System.out.println("[Server] exiting"); acceptor.close(); } }