MultiClient服务器 - Java [英] MultiClient server - Java

查看:239
本文介绍了MultiClient服务器 - Java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个程序准备好作为客户端,另一个作为服务器。



我想要能够发送消息到服务器,然后服务器将该消息转发到另一个也连接到服务器的客户端。



所以服务器应该将消息转发给其他客户端。 p>

我如何能做到这一点,我需要读什么?



这是什么我现在得到了。



Server.java

  

import java.net。*;
import java.io. *;

import javax.swing。*;

public class Server {

public static void run(){
ServerSocket serverSocket = null;
Socket socket = null;
try {
while(true){
serverSocket = new ServerSocket(5555);
socket = serverSocket.accept();
InputStreamReader streamReader = new InputStreamReader(socket.getInputStream());
BufferedReader bufferedReader = new BufferedReader(streamReader);
String message = bufferedReader.readLine();
System.out.println(message);
if(message!= null){
PrintStream printStream = new PrintStream(socket.getOutputStream());
printStream.println(Message Reced!);
}
streamReader.close();
socket.close();
serverSocket.close();
bufferedReader.close();
}
} catch(Exception e){}
// try {
//
//} catch(Exception e){}
}
public static void main(String [] args){
Server s = new Server();
s.run();
}

}



然后我也得到了TCPClient.java

 包客户端; 

import java.net。*;
import java.io. *;

public class TCPClient {
private String serverIP =localhost;
private int serverPort = 1111;
private int count = 0;
private线程;

public TCPClient(){
this.thread = new Thread(new ConnectAndListenToServer());
// thread.start();
}
public void sendMessage(int count){
this.count = count;
this.thread = new Thread(new ConnectAndListenToServer());
thread.start();
}
private class ConnectAndListenToServer implements Runnable {
Socket socket = null;
public void run(){
BufferedReader bufferedReader = null;
InputStreamReader streamReader = null;
try {
socket = new Socket(serverIP,serverPort);
PrintStream printStream = new PrintStream(socket.getOutputStream());
printStream.println(count);
streamReader = new InputStreamReader(socket.getInputStream());
bufferedReader = new BufferedReader(streamReader);
String message = bufferedReader.readLine();
if(message!= null){
System.out.println(message);
}

} catch(Exception e){}
try {
socket.close();
bufferedReader.close();
streamReader.close();
} catch(Exception ee){}
}
}

}



我如何能够将已经在服务器上收到的messeage转发给另一个客户?



解决方案


我如何能够将已经在服务器上收到的messeage转发给另一个客户?


已在同一上下文中发布了一些示例。



到目前为止,您已经做得很好,请查看 客户端 - 服务器通信



如果还有任何问题,请让我知道!


I have a program ready that acts as a client and another that acts as a server.

I want to be able to send a message to the server, and the server will then forward the message to another client that is also connected to the server.

So the the server is supposed to forward the message to the other client.

How would i be able to do that, and what do I need to read up on?

This is what i got now.

Server.java

package server;

import java.net.*;
import java.io.*;

import javax.swing.*;

public class Server{

public static void run() {
    ServerSocket serverSocket = null;
    Socket socket = null;
    try{
        while(true){
            serverSocket = new ServerSocket(5555);
            socket = serverSocket.accept();
            InputStreamReader streamReader = new InputStreamReader(socket.getInputStream());
            BufferedReader bufferedReader = new BufferedReader(streamReader);
            String message = bufferedReader.readLine();
            System.out.println(message);
            if(message != null){
                PrintStream printStream = new PrintStream(socket.getOutputStream());
                printStream.println("Message receivd!");
            }
            streamReader.close();
            socket.close();
            serverSocket.close();
            bufferedReader.close();
        }
    }catch(Exception e){}
 //     try{
 //         
 //     }catch(Exception e){}
     }
    public static void main(String[]args){
    Server s = new Server();
    s.run();
}

}

And then I also got TCPClient.java

package client;

 import java.net.*;
 import java.io.*;

 public class TCPClient {
private String serverIP = "localhost";
private int serverPort = 1111;
private int count = 0;
private Thread thread;

public TCPClient() {
    this.thread = new Thread(new ConnectAndListenToServer());
  //        thread.start();
}
public void sendMessage(int count){
    this.count = count;
    this.thread = new Thread(new ConnectAndListenToServer());
    thread.start();
}
private class ConnectAndListenToServer implements Runnable {
    Socket socket = null;
    public void run() {
        BufferedReader bufferedReader = null;
        InputStreamReader streamReader = null;
        try {
            socket = new Socket(serverIP,serverPort);
            PrintStream printStream = new PrintStream(socket.getOutputStream());
            printStream.println(count);
            streamReader = new InputStreamReader(socket.getInputStream());
            bufferedReader = new BufferedReader(streamReader);
            String message = bufferedReader.readLine();
            if(message != null){
                System.out.println(message);
            }

        }catch(Exception e){}
        try{
            socket.close();
            bufferedReader.close();
            streamReader.close();
        }catch(Exception ee){}
    }
}

}

How would i be able to forward the messeage already received on the server to another client?

解决方案

How would i be able to forward the messeage already received on the server to another client?

I have already posted some samples in the same context.

Till now you have done well, to complete it please have a look Client-Server Communication. I have described it step by step just follow the thread to find other samples as well.

Please let me know if still you have any issue!

这篇关于MultiClient服务器 - Java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆