java 聊天程序,服务器怎么将客户发来的消息发给指定客户端?

客户端:publicclassClient{publicstaticvoidmain(String[]args)throwsException{Socketclient=... 客户端:
public class Client {
public static void main(String[] args) throws Exception {
Socket client = new Socket("localhost", 12345);
PrintStream ps = new PrintStream(client.getOutputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
boolean flag = true;
while (flag) {
String msg = input.readLine();
if("bye".equalsIgnoreCase(msg)){
flag = false;}
ps.println(msg);
String newMsg = reader.readLine();
System.out.println(newMsg);}
input.close();
client.close();}}
服务器:
public class Server {
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(12345);
System.out.println("等待客户端连接");
boolean flag = true;
while (flag) {
Socket client = server.accept();
new Thread(new ECHOThread(client)).start();}
server.close();}}
多线程:
public class ECHOThread implements Runnable {
private Socket client;
public ECHOThread(Socket client) {
this.client = client;}
public void run() {
try {
BufferedReader input = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintStream ps = new PrintStream(client.getOutputStream());
while (true) {
String data = input.readLine();
System.out.println("-->" + data);
if (data == null) {break;}
String newData = "ECHO: " + data;
ps.println(newData);}
} catch (IOException e) {e.printStackTrace();}}}
展开
 我来答
longjuelegend
2014-05-10 · TA获得超过821个赞
知道小有建树答主
回答量:483
采纳率:50%
帮助的人:218万
展开全部
通过ip地址
更多追问追答
追问
有没有具体代码?我知道是通过ip
追答
具体就是通过socket.getInetAddress().getHostAddress() 获取ip,然后具体的配对规则应该根据具体业务
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-05-10
展开全部
你好!很高兴为你解答!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式