网上很多基于Socket的聊天实现都是不完整的,于是写了个Demo(需要的童鞋可以在此基础上进行优化)
完整代码可以在GitHub里获取https://github.com/zz7zz7zz/android-socket-client
或者在csdn获取 http://download.youkuaiyun.com/detail/zz7zz7zz/5884541
1.废话不多说,附主要的Client类
package com.boyaa.push.lib.service; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketException; import java.util.Iterator; import java.util.concurrent.LinkedBlockingQueue; import android.content.Context; import android.util.Log; import com.boyaa.push.lib.util.NetworkUtil; /** * * @author Administrator * */ public class Client { private final int STATE_OPEN=1;//socket打开 private final int STATE_CLOSE=1<<1;//socket关闭 private final int STATE_CONNECT_START=1<<2;//开始连接server private final int STATE_CONNECT_SUCCESS=1<<3;//连接成功 private final int STATE_CONNECT_FAILED=1<<4;//连接失败 private final int STATE_CONNECT_WAIT=1<<5;//等待连接 private String IP="192.168.1.100"; private int PORT=60000; private int state=STATE_CONNECT_START; private Socket socket=null; private OutputStream outStream=null; private InputStream inStream=null; private Thread conn=null; private Thread send=null; private Thread rec=null; private Context context; private ISocketResponse respListener; private LinkedBlockingQueue<Packet> requestQueen=new LinkedBlockingQueue<Packet>(); private final Object lock=new Object(); public int send(Packet in) { requestQueen.add(in); synchronized (lock) { lock.notifyAll(); } return in.getId(); } public void cancel(int reqId) { Iterato
android socket 聊天实现
最新推荐文章于 2018-08-02 19:30:00 发布