Chinaunix首页 | 论坛 | 博客
  • 博客访问: 820803
  • 博文数量: 780
  • 博客积分: 7000
  • 博客等级: 少将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-12 09:11
文章分类

全部博文(780)

文章存档

2011年(1)

2008年(779)

我的朋友
最近访客

分类:

2008-09-12 09:14:41


  //ServeOneSocket.java 服务端源程序
  
  import java.io.*;
  import java.net.*;
  
  public class ServeOneSocket extends Thread {
  
  private Socket socket;
  private BufferedReader in;
  private PrintWriter out;
  private String content;
  
  /**
  * Constructor
  */
  public ServeOneSocket(Socket s,String c)throws IOException {
  socket=s;
  content=c;
  in=new BufferedReader(
  new InputStreamReader(
  socket.getInputStream()));
  //enable auto-flush
  out=new PrintWriter(
  new BufferedWriter(
  new OutputStreamWriter(
  socket.getOutputStream())),true);
  start();//calls run()
  }
  
  public void run(){
  try{
  while (true){
  String str=in.readLine();
  if (str.equals("END"))break;
  System.out.println("Echoing:"+str);
  out.println(str);
  out.println(content);
  }
  System.out.println("Closing...");
  }catch(IOException e){
  }finally{
  try{
  socket.close();
  }catch(IOException e){}
  }
  }
  }
  
  //SocketClientThread.java 客户端源程序
  
  import java.net.*;
  import java.io.*;
  
  class SocketClientThread extends Thread{
  private Socket socket;
  private BufferedReader in;
  private PrintWriter out;
  private static int counter=0;
  private int id=counter++;
  private static int threadcount=0;
  final int port=8110;
  
  public static int threadCount(){
  return threadcount;
  }
  
  public SocketClientThread(InetAddress addr){
  System.out.println("Making client:"+id);
  threadcount++;
  try{
  socket=new Socket(addr,port);
  }catch(IOException e){
  }
  try{
  in=new BufferedReader(
  new InputStreamReader(
  socket.getInputStream()));
  out=new PrintWriter(
  new BufferedWriter(
  new OutputStreamWriter(
  socket.getOutputStream())),true);
  start();
  }catch(IOException e){
  try{
  socket.close();
  }catch(IOException e2){}
  }
  }
  
  public void run(){
  try{
  for (int i=0;i<25;i++){
  out.println("Client:"+id+":"+i);
  String str=in.readLine();
  System.out.println(str);
  }
  out.println("END");
  }catch(IOException e){
  }finally{
  try{
  socket.close();
  }catch(IOException e){}
  threadcount--;
  }
  }
  }
  
  public class MultiSocketClient {
  static final int MAX_THREADS=10;
  /**
  * main
  * @param args
  */
  public static void main(String[] args)throws IOException,InterruptedException {
  InetAddress addr=InetAddress.getByName(null);
  while (true){
  if (SocketClientThread.threadCount()  new SocketClientThread(addr);
  Thread.currentThread().sleep(100);
  }
  }
  }
  
【责编:admin】

--------------------next---------------------

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