net help
我在客户端程序中向服务器发送信息,而后获得服务器发送的来自所有客户端的信息最好能有例子。 问题点数:50、回复次数:3Top
1 楼GJA106(中文字符)回复于 2002-04-12 17:30:30 得分 50
服务端--非常简单的
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)
{
}
}
}
}Top
2 楼GJA106(中文字符)回复于 2002-04-12 17:31:24 得分 0
接收部分自己去实现。不太难的。
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);
}
}
Top
3 楼GJA106(中文字符)回复于 2002-04-12 18:47:02 得分 0
服务端的
this.mTestSocketServer.mVector.addElement(mAllClientVector);
改为:
this.mTestSocketServer.mAllClientVector.addElement(mVector);Top




