Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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_Client_Socketserver - Fatal编程技术网

Java中的服务器程序示例有问题:如何编程

Java中的服务器程序示例有问题:如何编程,java,client,socketserver,Java,Client,Socketserver,我在自学Java,我在使用Deitel的书,因为它得到了高度推荐,我遇到了一些麻烦 所以我试着复制《Java:如何编程》一书中的图27.5-8。我想我需要.5的数字,因为它是服务器,而.7的数字,因为它是客户端。所以我把它们都放在同一个项目中,然后合并它们的主要类(图6和图8),这样当我运行程序时,它们将同时启动服务器和客户机。但是,当我告诉netBeans编译并运行时,它会打开我为服务器和客户端设置的窗口,但文本字段不会启用(正如它们在接收连接时应该启用的那样),而且据我所知,它们没有相互连接

我在自学Java,我在使用Deitel的书,因为它得到了高度推荐,我遇到了一些麻烦

所以我试着复制《Java:如何编程》一书中的图27.5-8。我想我需要.5的数字,因为它是服务器,而.7的数字,因为它是客户端。所以我把它们都放在同一个项目中,然后合并它们的主要类(图6和图8),这样当我运行程序时,它们将同时启动服务器和客户机。但是,当我告诉netBeans编译并运行时,它会打开我为服务器和客户端设置的窗口,但文本字段不会启用(正如它们在接收连接时应该启用的那样),而且据我所知,它们没有相互连接

server.java和client.java文件应该与书中的完全相同,所以我想我在混合主文件以启动它们时一定弄糟了。这是我的合并主文件。也许我做错了什么

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!