Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何连接到java制作的服务器?_Java_Testing_Server - Fatal编程技术网

如何连接到java制作的服务器?

如何连接到java制作的服务器?,java,testing,server,Java,Testing,Server,我正在尝试连接到我用java制作的服务器,以查看服务器是否只是显示消息或将消息发送给客户端。当我在eclipse中运行它时,似乎我可以启动服务器,客户端可以连接到它,但我不知道消息是否只是出现在控制台中,或者实际上是发送给用户的。我如何测试我制作的服务器 编辑:ClientPeer、TextClient、Server、ServerPeer类的代码。ServerConfig返回TCP_端口键和MAX_客户端(int)。此外,getAll()方法还返回消息以及消息来自谁。 现在我可以启动服务器并连接

我正在尝试连接到我用java制作的服务器,以查看服务器是否只是显示消息或将消息发送给客户端。当我在eclipse中运行它时,似乎我可以启动服务器,客户端可以连接到它,但我不知道消息是否只是出现在控制台中,或者实际上是发送给用户的。我如何测试我制作的服务器

编辑:ClientPeer、TextClient、Server、ServerPeer类的代码。ServerConfig返回TCP_端口键和MAX_客户端(int)。此外,getAll()方法还返回消息以及消息来自谁。 现在我可以启动服务器并连接客户端,但在TextClient中它不显示任何内容,尽管在服务器中它显示消息

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

public class ClientPeer extends Thread {

    String _username;
    Socket _Socket;

    public void run() {
        try {
            ObjectInputStream _ois = new ObjectInputStream(_Socket.getInputStream());

            Message _mess = (Message) _ois.readObject();

            System.out.println(_mess.getAll());

        } catch (Exception e) {
        }
    }

    public ClientPeer(String _username, Socket _Socket)

    {
        this._username = _username;
        this._Socket = _Socket;
    }

    public void sendMessage(String _message) throws IOException {
        ObjectOutputStream _obj = new ObjectOutputStream(
                _Socket.getOutputStream());
        _obj.writeObject(new Message(_username, _message));
        _obj.flush();

    }

    public void sendMessage(String _message, String _receiver)
            throws IOException {
        ObjectOutputStream _obj = new ObjectOutputStream(
                _Socket.getOutputStream());
        _obj.writeObject(new PrivateMessage(_username, _message, _receiver));
        _obj.flush();
    }
}

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

public class ServerPeer extends Thread {
    Socket _socket;

    public ServerPeer(Socket _socket) {
        this._socket = _socket;
    }

    public void run() {
        try {
            ObjectInputStream _ois = new ObjectInputStream(_socket.getInputStream());
            Message _message;
            while (_socket.isConnected()) {

                _message = (Message) _ois.readObject();
                if (_message instanceof Message) {
                    System.out.println(_message.getAll());
                }
                _ois = new ObjectInputStream(_socket.getInputStream());


            }
        } catch (Exception e) {
        }
    }
}


import java.io.*;
import java.net.*;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;

public class TextClient {
    public TextClient() {
    }

    public static void main(String[] args) throws IOException,
            UnknownHostException, ConnectException, InterruptedException {

        Socket _socket = new Socket("localhost", 9000);
        System.out.println("Please enter your desired username:");
        Scanner _new = new Scanner(System.in);
        String _inputname = _new.nextLine();
        System.out.println("Success.You can now type your messages!");
        ClientPeer _clientpeer = new ClientPeer(_inputname, _socket);
        Scanner _scan = new Scanner(System.in);
        String _input = _scan.nextLine();

        while (true) {


            if (!_input.equals("exit")) {
                if (_input.startsWith("/w"))
                    _clientpeer.sendMessage(_input, "username");
                else
                    _clientpeer.sendMessage(_input);

            } else
                break;
            _clientpeer.start();
            _input = _scan.nextLine();
        }
        _clientpeer.start();
    }
}

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

public class Server {
    static ServerConfig _svconfig = new ServerConfig();

    // final static int _mysocket;


    public static void main(String[] args) {
        try {

            final int _mysocket = _svconfig.getPORTNumber();
            ServerSocket _serversocket = new ServerSocket(_mysocket);
            int i = 1;
            while (i <= _svconfig.getCLIENTSNumber()) {
                Socket _clientsocket = _serversocket.accept();
                i++;
                ServerPeer _serverpeer = new ServerPeer(_clientsocket);
                _serverpeer.start();
            }
            _serversocket.close();

        } catch (MissingKeyException e) {
            e.printStackTrace();
        } catch (UnknownKeyException e) {
            e.printStackTrace();
        } catch (InvalidFormatException e) {
            e.printStackTrace();
        } catch (ConnectException e) {
            e.printStackTrace();
        } catch (BindException e) {
            e.printStackTrace();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (SocketException e) {
            System.out.println("You have been disconnected");
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}
import java.net.*;
导入java.io.*;
公共类ClientPeer扩展线程{
字符串\u用户名;
插座(u插座),;
公开募捐{
试一试{
ObjectInputStream _ois=新ObjectInputStream(_Socket.getInputStream());
Message _mess=(Message)_ois.readObject();
System.out.println(_mess.getAll());
}捕获(例外e){
}
}
公共客户端对等(字符串\u用户名,套接字\u套接字)
{
这个。用户名=\u用户名;
这个。_Socket=_Socket;
}
public void sendMessage(String\u message)引发IOException{
ObjectOutputStream _obj=新的ObjectOutputStream(
_getOutputStream());
_对象writeObject(新消息(_用户名,_消息));
_obj.flush();
}
公共无效发送消息(字符串消息、字符串接收者)
抛出IOException{
ObjectOutputStream _obj=新的ObjectOutputStream(
_getOutputStream());
_对象writeObject(新的私有消息(_用户名,_消息,_接收者));
_obj.flush();
}
}
导入java.net。*;
导入java.io.*;
公共类ServerPeer扩展线程{
插座(u插座),;
公共服务器对等(Socket\u Socket){
这个。_socket=_socket;
}
公开募捐{
试一试{
ObjectInputStream _ois=新ObjectInputStream(_socket.getInputStream());
消息(Message);;
而(_socket.isConnected()){
_message=(message)_ois.readObject();
if(_messageinstanceof message){
System.out.println(_message.getAll());
}
_ois=newObjectInputStream(_socket.getInputStream());
}
}捕获(例外e){
}
}
}
导入java.io.*;
导入java.net。*;
导入java.util.Scanner;
导入java.util.concurrent.TimeUnit;
公共类文本客户端{
公共文本客户端(){
}
公共静态void main(字符串[]args)引发IOException,
未知后异常、连接异常、中断异常{
Socket _Socket=新套接字(“localhost”,9000);
System.out.println(“请输入您想要的用户名:”);
扫描器_new=新扫描器(System.in);
字符串_inputname=_new.nextLine();
System.out.println(“成功。您现在可以键入消息了!”);
ClientPeer\u ClientPeer=新的ClientPeer(\u inputname,\u socket);
扫描器_scan=新扫描器(System.in);
字符串_input=_scan.nextLine();
while(true){
如果(!\u输入等于(“退出”)){
如果(_input.startsWith(“/w”))
_sendMessage(_输入,“用户名”);
其他的
_clientpeer.sendMessage(_输入);
}否则
打破
_clientpeer.start();
_输入=_scan.nextLine();
}
_clientpeer.start();
}
}
导入java.io.*;
导入java.net。*;
导入java.util.*;
公共类服务器{
静态服务器配置_svconfig=new ServerConfig();
//最终静态int_mysocket;
公共静态void main(字符串[]args){
试一试{
final int _mysocket=_svconfig.getPORTNumber();
ServerSocket\u ServerSocket=新的ServerSocket(\u mysocket);
int i=1;

while(我让客户打印出他们收到的消息?你应该向我们展示代码和其他关于你的问题的有用信息。可能是屏幕截图之类的。下一件事:在客户控制台中写入,当接收到某个内容时。如果客户没有接收到任何内容,它将不会在控制台中写入任何内容。我希望你(1)编译Java程序以获取类文件,(2)启动命令shell窗口,(3)导航到编译后的Java类所在的文件夹,(4)使用Java VM运行服务器的Java类并选择适当的选项。完成后,关闭命令shell以关闭Java VM和服务器。