android兑现简单的聊天室

android实现简单的聊天室练习android网络知识。先介绍一下大概流程。首先是建立一个java工程,并创建两个java

android实现简单的聊天室

练习android网络知识。先介绍一下大概流程。首先是建立一个java工程,并创建两个java类,一个用于接收到客户端的连接,并把连接添加list中,第二类实现线程runnable接口,专门用来接收发送客户发送的信息。其次,建立android工程,并创建两个类,一个用于显示聊天界面,另一个负责接收服务器端返回的信息。这个例子肯定会有考虑不周的地方但是只是为了学习android中网络相关api的使用,所以请大家谨慎拍砖。

首先还是android的内容

/** * 负责每个线程通信的类 * 该类不断读取客户端数据,使用自定义的readFromClient()方法读取 * 客户端数据,如果出现异常表明该socket对应的客户端socket出现了问题 * 程序将该socket从list中移除。 * 当服务器线程读取到了客户端数据后,遍历list集合,并将数据发送到每个 * socket中 * @author Administrator * */public class ServerThead implements Runnable {//定义当前线程处理的socketSocket s = null;//该线程所处理的socket对应的输入流BufferedReader br = null;public ServerThead(Socket s) throws IOException {this.s = s;br = new BufferedReader(new InputStreamReader(s.getInputStream()));}@Overridepublic void run() {String conntent = null;while((conntent=readFromClient())!=null){//遍历socket中的每一个socketfor(Socket s:SimpleServer.socketList){try {OutputStream os = s.getOutputStream();os.write((conntent+"\n").getBytes("utf-8"));} catch (IOException e) {e.printStackTrace();}}}}private String readFromClient() {try {return br.readLine();} catch (IOException e) {e.printStackTrace();SimpleServer.socketList.remove(s);}return null;}}