Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8621569
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: Java

2009-03-14 18:58:27

之前介绍的java socket编程,只能是一对一.server端只接受一个client,现在,我们在server端再加一层,让他可以接多个client.
 

import java.io.*;
import java.net.*;

public class MultiServer
{
    public static void main(String[] args) throws IOException
    {
        ServerSocket server=new ServerSocket(8000);
        while (true)
        {
            Socket client=server.accept();
            BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
            PrintWriter out=new PrintWriter(client.getOutputStream());
            while (true)
            {
                String str=in.readLine();
                System.out.println(str);
                out.println("has receive....");
                out.flush();
                if (str.equals("end"))
                    break;
            }
            client.close();
        }
    }
}

不过,还是有点问题.首先启动server端,client端继续按照之前的进行启动.不过这种模式属于阻塞模式.同时启动多个客户端,只有一个client端可以和服务端通话.当一个client端退出结束后,另一个客户端才可以进入对话.在现实生活中,并不常用.之后,我们再看一下如何解决并发的问题.

阅读(1253) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~