Android实现C/S聊天室-创新互联

Java中能接受其他通信实体链接请求的类是ServerSocket,ServerSocket对象用于监听来自客户端的Socket链接,如果没有链接,它将一直等待。如果接收到一个客户端Socket的连接请求,ServerSocket的accept()方法将返回一个与客户端Socket对应的Socket(每个TCP连接有两个Socket),否则该方法将一直阻塞,线程也被阻塞。

创新互联建站主要从事成都网站建设、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务广元,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

服务端思路:服务端应该包含多个线程,每个Socket对应一个线程,这个线程负责读取该Socket对应输入流的数据(从客户端发送过来的数据),并将读到的数据向每个Socket输出流发送一次(将一个客户端发送过来的数据“广播”给其他客户端)。

服务端代码:

//服务端主类
public class MyServer
{
  public static List socketList = Collections.synchronizedList(new ArrayList());
  public static void main(String[] args) throws IOException
  {
    ServerSocket ss = new ServerSocket(30000);
    while (true)
    {
      //此行代码会阻塞,将一直等待别人的连接
      Socket s = ss.accept();
      socketList.add(s);
      //每当客户端连接后启动一个ServerThread线程为该客户端服务
      new Thread(new ServerThread(s)).start();
    }
  }
}

新闻标题:Android实现C/S聊天室-创新互联
当前路径:http://azwzsj.com/article/pdhjh.html