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