WEB开发网
开发学院软件开发Java socket搭建服务器初级编程 阅读

socket搭建服务器初级编程

 2007-12-23 12:36:40 来源:WEB开发网   
核心提示:看到现在很多朋友都在问socket的问题,因此自己写了个用socket搭建服务器的基础程序供大家参考,socket搭建服务器初级编程,程序只实现了简单的接收然后广播,小弟水平有限,还望大家不吝赐教,程序如下:import java.net.*;import java.io.*;import java.util.*;pu

看到现在很多朋友都在问socket的问题,因此自己写了个用socket搭建服务器的基础程序供大家参考。程序只实现了简单的接收然后广播。

小弟水平有限,还望大家不吝赐教。程序如下:

import java.net.*;
import java.io.*;
import java.util.*;
public class SocketServer2 extends Thread{
  Vector v = null;
  ServerSocket ss = null; 
  public SocketServer2() {
    v = new Vector();
   try{
   ss = new ServerSocket(8000);
   }catch(Exception e){System.out.PRintln(e);}
   this.start();
  }

  public static void main(String[] args) {
     new SocketServer2();     
  }
  public void run()
  {
   try{   
    while(true)
       {
        /* 为各个客户端建立连接并用Vector存储相关信息,据<thinking in java>上说ArrayList更好,不过我对ArrayList不熟,就将就用Vector了 */

      Socket sc = ss.accept();
        InputStream is = sc.getInputStream();      
        OutputStream os = sc.getOutputStream() ;
        Exchange ct = new Exchange(this,is,os);
        v.addElement(ct);      
       }      
   }
   catch(Exception e){}
  } 
  public void sendMsg(String str){
/* 利用存储的各个流信息进行广播 */ 

for(int i=0;i<v.size();i++){
 Exchange eg = (Exchange)v.elementAt(i);
 try{
 System.out.println(str); 
 eg.os.write((str+"\n").getBytes());
   }catch(Exception e){}
 }
  } 
 
}
/* 每个线程控制一个连接,独自实现接收和广播 */

class Exchange extends Thread{
 SocketServer2 s=null;
 InputStream is = null;
 OutputStream os = null;
 Exchange(SocketServer2 s,
        InputStream is,
        OutputStream os){
  this.s = s;
  this.is = is;
  this.os = os;
  this.start();
  }
 public void run(){
  while(true){
    try{
    DataInputStream dis = new DataInputStream(is) ;
         String sb="";
         int c=0;
         while (((c = is.read()) != '\n') && (c != -1)) {
           sb=sb+(char)c;
         }
         if (c == -1) {          
           break;
         }
       
        s.sendMsg(sb);
  }
  catch(Exception e){System.out.println(e);}
  }
 } 
}


(出处:http://www.cncms.com)


Tags:socket 搭建 服务器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接