服务器与android的通信可以通过socket来进行,比如,android发送信息到服务器:服务器端程序server.class:  
Socket client = serverSocket.accept();  客服端程序client.class:
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));  服务器端程序运行后,也就是(java server)后,客服端程序发起的请求就可以被服务器端程序监听了,并可以通过readLine方法获得服务器端返回的信息。
问题一:上面的通信是android客服端主动发起的,可以服务器端主动推送信息到客服端么?通过什么技术呢?android上的即时聊天程序大概是个什么思路呢?
问题二:可以通过把上面server端与client端的代码互换来实现PC端发起么?android上有编译器么?多谢指点。