熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

Java中SOCKET通訊源碼

2013-11-23 19:50:33  來源: Java高級技術 

  //ServeOneSocketjava 服務端源程序
  
  import javaio*;
  import *;
  
  public class ServeOneSocket extends Thread {
  
  private Socket socket;
  private BufferedReader in;
  private PrintWriter out;
  private String content;
  
  /**
  * Constructor
  */
  public ServeOneSocket(Socket sString c)throws IOException {
  socket=s;
  content=c;
  in=new BufferedReader(
  new InputStreamReader(
  socketgetInputStream()));
  //enable autoflush
  out=new PrintWriter(
  new BufferedWriter(
  new OutputStreamWriter(
  socketgetOutputStream()))true);
  start();//calls run()
  }
  
  public void run(){
  try{
  while (true){
  String str=inreadLine();
  if (strequals(END))break;
  Systemoutprintln(Echoing:+str);
  outprintln(str);
  outprintln(content);
  }
  Systemoutprintln(Closing);
  }catch(IOException e){
  }finally{
  try{
  socketclose();
  }catch(IOException e){}
  }
  }
  }
  
  //SocketClientThreadjava 客戶端源程序
  
  import *;
  import javaio*;
  
  class SocketClientThread extends Thread{
  private Socket socket;
  private BufferedReader in;
  private PrintWriter out;
  private static int counter=;
  private int id=counter++;
  private static int threadcount=;
  final int port=;
  
  public static int threadCount(){
  return threadcount;
  }
  
  public SocketClientThread(InetAddress addr){
  Systemoutprintln(Making client:+id);
  threadcount++;
  try{
  socket=new Socket(addrport);
  }catch(IOException e){
  }
  try{
  in=new BufferedReader(
  new InputStreamReader(
  socketgetInputStream()));
  out=new PrintWriter(
  new BufferedWriter(
  new OutputStreamWriter(
  socketgetOutputStream()))true);
  start();
  }catch(IOException e){
  try{
  socketclose();
  }catch(IOException e){}
  }
  }
  
  public void run(){
  try{
  for (int i=;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);
  }
  }
  }

From:http://tw.wingwit.com/Article/program/Java/gj/201311/27538.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.