先看代码
《MultiJabberServer》import java.io.*;
import java.net.*;public class MultiJabberServer
{ static final int PORT = 8080; public static void main(String[] args)
throws IOException
{
ServerSocket s = new ServerSocket(PORT);
System.out.println("==服务端开始==");
try
{
while (true)
{
Socket socket = s.accept();
try
{
new ServeOneJabber(socket);
}
catch (IOException e)
{
socket.close();
}
}
}
finally
{
s.close();
}
}
}
《ServeOneJabber》
import java.io.*;
import java.net.*;public class ServeOneJabber extends Thread
{ private Socket socket;
private BufferedReader in;
private PrintWriter out; public ServeOneJabber(Socket s)
throws IOException
{
socket = s;
in =
new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
out =
new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
socket.getOutputStream())), true);
start();
} @Override
public void run()
{
try
{
while (true)
{
String str = in.readLine();
if (str.equals("END"))
{
break;
}
System.out.println("==输出==" + str);
out.println(str);
}
System.out.println("==客户端退出了==");
}
catch (IOException e)
{
}
finally
{
try
{
socket.close();
}
catch (IOException e)
{
System.out.println("==客户端意外掉线了==");
}
}
}
}本人学生
有个问题是:
现在假设有两个客户端连接进来了 分别是A和B
现在A传了个值给服务器
我怎么做才能把这个值传给B?
小弟不懂 new ServeOneJabber(socket)后
直接交给线程start()了
我怎么区分A和B?
《MultiJabberServer》import java.io.*;
import java.net.*;public class MultiJabberServer
{ static final int PORT = 8080; public static void main(String[] args)
throws IOException
{
ServerSocket s = new ServerSocket(PORT);
System.out.println("==服务端开始==");
try
{
while (true)
{
Socket socket = s.accept();
try
{
new ServeOneJabber(socket);
}
catch (IOException e)
{
socket.close();
}
}
}
finally
{
s.close();
}
}
}
《ServeOneJabber》
import java.io.*;
import java.net.*;public class ServeOneJabber extends Thread
{ private Socket socket;
private BufferedReader in;
private PrintWriter out; public ServeOneJabber(Socket s)
throws IOException
{
socket = s;
in =
new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
out =
new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
socket.getOutputStream())), true);
start();
} @Override
public void run()
{
try
{
while (true)
{
String str = in.readLine();
if (str.equals("END"))
{
break;
}
System.out.println("==输出==" + str);
out.println(str);
}
System.out.println("==客户端退出了==");
}
catch (IOException e)
{
}
finally
{
try
{
socket.close();
}
catch (IOException e)
{
System.out.println("==客户端意外掉线了==");
}
}
}
}本人学生
有个问题是:
现在假设有两个客户端连接进来了 分别是A和B
现在A传了个值给服务器
我怎么做才能把这个值传给B?
小弟不懂 new ServeOneJabber(socket)后
直接交给线程start()了
我怎么区分A和B?
楼主【zjkboy】截止到2008-07-25 20:46:17的历史汇总数据(不包括此帖):
发帖的总数量:11 发帖的总分数:160 每贴平均分数:14
回帖的总数量:7 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:10 结贴的总分数:140
无满意结贴数:3 无满意结贴分:50
未结的帖子数:1 未结的总分数:20
结贴的百分比:90.91 % 结分的百分比:87.50 %
无满意结贴率:30.00 % 无满意结分率:35.71 %
值得尊敬