android 里使用Socket进行发送消息案例
猜拳 源码
http://www.eoeandroid.com/thread-114907-1-1.html
自己实现的Android曲线图
http://www.eoeandroid.com/thread-207218-1-1.html
android游戏物理引擎源码
http://www.eoeandroid.com/thread-207445-1-1.html
socketServer类
package com.socket.server; import java.io.*; import java.net.*; import android.content.Context; import android.content.Intent; public class SocketServer { ServerSocket sever; Context context; public SocketServer(Context context, int port) { try { //实例化ServerSocket传入端口号 sever = new ServerSocket(port); this.context = context; } catch (IOException e) { e.printStackTrace(); } } public void ControlActionAnswerMsg(String str) { final Intent intent = new Intent(); intent.setAction("SOCKET_ACTION"); intent.putExtra("message", str); context.sendBroadcast(intent); } public void beginListen() { //将socket监听放入线程中,防止影响主线程操作 new Thread() { public void run() { //因为是不断监听的过程,所以采用死循环 while (true) { try { //这里是做监听操作 final Socket socket = sever.accept(); BufferedReader in; try { //监听到消息后这里读取流信息 in = new BufferedReader(new InputStreamReader( socket.getInputStream(), "UTF-8")); //将流信息放入PrintWriter中,然后读出来即可 PrintWriter out = new PrintWriter( socket.getOutputStream()); while (!socket.isClosed()) { String str; //读出字符串 str = in.readLine(); out.println("Hello!world!! " + str); out.flush(); if (str == null || str.equals("end")) break; System.out.println(str); ControlActionAnswerMsg(str); } socket.close(); } catch (IOException e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } } } }.start(); } }
ClientSocket类
package com.socket.pc; import java.io.*; import java.net.*; public class ClientSocket { static Socket client; public ClientSocket(String site, int port) { try { //实例化socket传入ip和端口号,两边端口号要统一 client = new Socket(site, port); System.out.println("Client is created! site:" + site + " port:" + port); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public String sendMsg(String msg) { try { // BufferedReader in = new BufferedReader(new InputStreamReader( // client.getInputStream())); //将字符串转成输出流然后发送出去 PrintWriter out = new PrintWriter(client.getOutputStream()); out.println(msg); out.flush(); // return in.readLine(); } catch (IOException e) { e.printStackTrace(); } return ""; } public void closeSocket() { try { client.close(); } catch (IOException e) { e.printStackTrace(); } } }