Java中的服务器程序示例有问题:如何编程
我在自学Java,我在使用Deitel的书,因为它得到了高度推荐,我遇到了一些麻烦 所以我试着复制《Java:如何编程》一书中的图27.5-8。我想我需要.5的数字,因为它是服务器,而.7的数字,因为它是客户端。所以我把它们都放在同一个项目中,然后合并它们的主要类(图6和图8),这样当我运行程序时,它们将同时启动服务器和客户机。但是,当我告诉netBeans编译并运行时,它会打开我为服务器和客户端设置的窗口,但文本字段不会启用(正如它们在接收连接时应该启用的那样),而且据我所知,它们没有相互连接 server.java和client.java文件应该与书中的完全相同,所以我想我在混合主文件以启动它们时一定弄糟了。这是我的合并主文件。也许我做错了什么Java中的服务器程序示例有问题:如何编程,java,client,socketserver,Java,Client,Socketserver,我在自学Java,我在使用Deitel的书,因为它得到了高度推荐,我遇到了一些麻烦 所以我试着复制《Java:如何编程》一书中的图27.5-8。我想我需要.5的数字,因为它是服务器,而.7的数字,因为它是客户端。所以我把它们都放在同一个项目中,然后合并它们的主要类(图6和图8),这样当我运行程序时,它们将同时启动服务器和客户机。但是,当我告诉netBeans编译并运行时,它会打开我为服务器和客户端设置的窗口,但文本字段不会启用(正如它们在接收连接时应该启用的那样),而且据我所知,它们没有相互连接
package server_client;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args) {
Server application = new Server(); //create server
Client applicationClient; //declare client application
//if no command line args
if (args.length==0)
applicationClient = new Client ("127.0.0.1"); //connect to localhost
else
applicationClient = new Client (args[0]); //use args to connect
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
applicationClient.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.runServer(); //run server application
applicationClient.runClient(); //run client application
}//end main
}//end class Main
你把事情搞混了。让我们从头开始。首先,这是创建简单UI的方法
public static void main(String[] args){
JFrame frame = new JFrame(); // This will be holding your future buttons
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Request Generator");
frame.setSize(300, 300); // Size x = 300, size y = 300
frame.setLocationRelativeTo(null); // Puts the frame in the middle of the screen
frame.setVisible(true); // Without this line of code, the frame won't show
}
但在这种情况下,我不建议为测试目的创建UI,因为它非常耗时而且不必要。改用控制台。您可以在控制台中输出以下内容:
System.output.println("Hello, world!");
甚至是一个变量,比如一个数字
int number = 10;
System.output.println("Variable number has value: " + number);
其次,我建议您将客户机和服务器分成两个独立的项目,并分别启动它们。或者更好,如果您愿意,我可以给您一个客户端/服务器连接的小示例。因为,就我个人而言,我以前从未遇到过这种实现。可能很难解决 有一个名为
netstat
的windows实用程序,它将显示您的所有网络连接
同时,学习如何使用该工具也会有所帮助
一种可能是,在GUI检查连接之前,连接正在建立,这样GUI就不知道连接是否存在
尝试在一个应用程序中启动服务器,在另一个应用程序中启动客户端。欢迎使用stackoverflow!