package alma.logoot.network; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import alma.logoot.network.p2p.P2PLayer; import com.google.gwt.user.server.rpc.RemoteServiceServlet; public class NetworkServiceImpl extends RemoteServiceServlet implements NetworkService { private static final String SERVERADDR = "127.0.0.1"; /** * Max number of host connected to the node. */ private static final int MAX_HOST = 100; private static int id = 0; static final int PORTSEND = 9992; public static final int PORTCLIENT = 9990; private static final long serialVersionUID = 1L; private P2PLayer p2p = P2PLayer.getInstance(); @Override public void send(String message) { System.out.println("NetworkServiceImple.send: " + message); try { sendToLocalUser(message); sendToP2PUser(message); } catch (Exception e) { e.printStackTrace(); } } private void sendToP2PUser(String message) { System.out.println("Send on P2P network: " + message); p2p.sendMessage(message); } private void sendToLocalUser(String message) throws UnknownHostException, IOException { Socket clientSocket = new Socket(SERVERADDR, PORTSEND); DataOutputStream outToServer = new DataOutputStream( clientSocket.getOutputStream()); outToServer.write(message.getBytes()); clientSocket.close(); System.out.println("NetworkServiceImple.send fin"); } public Registration register() { // TODO: Get context from other client. long idRegistration = p2p.getPeerID() * MAX_HOST + ++id; String contextPatch = ""; return new Registration(idRegistration, contextPatch); } }