中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 网络
SOCKET通讯源码
作者:未知 时间:2005-07-24 21:17 出处:JR 责编:chinaitpower
              摘要:SOCKET通讯源码
//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()<MAX_THREADS)
          new SocketClientThread(addr);
        Thread.currentThread().sleep(100);
      }
  }
}

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有