服务端--非常简单的import java.io.*;
import java.net.*;
import java.util.Vector;public class TestSocketServer
{
ServerSocket mServerSocket = null;
Socket       mSocket = null;
public   Vector mAllClientVector = new Vector(5,2);//存放所有客户端信息 public TestSocketServer()
{
 try
 {
 mServerSocket = new ServerSocket(9009,15);
 mSocket = mServerSocket.accept();
 ReceiveClientThread rCT = new ReceiveClientThread(this,mSocket);
 rCT.start();
 }
 catch(Exception eSocket)
 {
 }
} public static void main(String [] args)
{
new TestSocketServer();
}
}class ReceiveClientThread extends Thread
{
private TestSocketServer mTestSocketServer = null;
private Socket mSocket = null;
private boolean mRunning = true;
DataInputStream   dis = null;
DataOutputStream  dos = null;
Vector mVector = null;
public ReceiveClientThread(TestSocketServer pTestSocketServer,Socket pSocket)
{
this.mTestSocketServer = pTestSocketServer;
this.mSocket = pSocket;
} public void run()
{
while(true)
{
if(!mRunning)
{
//在内存中删除相应的客户端信息
break;
}
try
{
 dis = new DataInputStream(mSocket.getInputStream());
 ObjectInputStream ois = new ObjectInputStream(dis);
 mVector = (Vector)ois.readObject();
 for(int i = 0 ; i < mVector.size(); i ++)
 {
 System.out.println(mSocket.getInetAddress().getHostAddress()+"输出:" + (String)mVector.elementAt(i));
 }
 //保存客户端信息:存入文件或临时内存中
       this.mTestSocketServer.mVector.addElement(mAllClientVector);
 //把mAllClientVector中的所有信息返回给客户端,自己去实现吧.
}
catch(Exception iDios)
{
}
}
}}

解决方案 »

  1.   

    接收部分自己去实现。不太难的。import java.io.*;
    import java.net.*;
    import java.util.Vector;public class TestSocketClient
    {
      Socket       mSocket = null;
      DataInputStream   dis = null;
      DataOutputStream  dos = null;
      Vector mVector = new Vector(5,1);
      public TestSocketClient(String [] args)
      {
         mVector.addElement("aa");
         mVector.addElement("bb");
         try
         {
           mSocket = new Socket("192.188.0.5",9009);       dos = new DataOutputStream(mSocket.getOutputStream());
           ObjectOutputStream oos = new ObjectOutputStream(dos);
           oos.writeObject(mVector);
         }
         catch(Exception eSocket)
         {
         }
      }   public static void main(String [] args)
      {    new TestSocketClient(args);
      }
    }
      

  2.   

    服务端的
     this.mTestSocketServer.mVector.addElement(mAllClientVector);
    改为:
    this.mTestSocketServer.mAllClientVector.addElement(mVector);