小编Rom*_*man的帖子

是否可以显示Java代码的树结构?

我是Java的新手.我试图找出如何使用此代码.在我看来,如果在开始时我得到代码的一般结构(哪些方法存在以及它们如何相互关联)将是非常有用的.例如,我看到"main"使用"createAndShowGUI",而"createAndShowGUI"又使用"addComponentsToPane"等等.所以,代码有一种树形结构,如果我可以想象这个结构,那就太好了.有没有可以做到的软件.或者,更具体地说,NetBeans可以做到吗?

java treeview netbeans code-visualization

6
推荐指数
2
解决办法
3128
查看次数

我应该从两端关闭插座吗?

我有以下问题.我的客户端程序监视本地网络中服务器的可用性(使用Bonjour,但它不会反弹).一旦客户端应用程序"注意到"服务器,客户端就会尝试创建一个套接字:Socket(serverIP,serverPort);.

在某些时候,客户端可以松开服务器(Bonjour说服务器不再在网络中可见).因此,客户端决定close使用套接字,因为它不再有效.

在某个时刻服务器再次出现.因此,客户端尝试创建与此服务器关联的新套接字.但!服务器可以拒绝创建此套接字,因为它(服务器)已经有一个与客户端IP和客户端端口关联的套接字.这是因为套接字由客户端关闭,而不是由服务器关闭.会发生吗?如果是这样的话,这个问题怎么解决?

好吧,我知道客户端不太可能尝试从同一个端口(客户端端口)连接到服务器,因为客户端随机选择其端口.但它仍然可能发生(只是偶然).对?

java sockets networking

6
推荐指数
1
解决办法
2875
查看次数

为什么Java找不到我的构造函数?

好吧,也许这是一个愚蠢的问题,但我无法解决这个问题.

在我的ServiceBrowser班上我有这一行:

ServiceResolver serviceResolver = new ServiceResolver(ifIndex, serviceName, regType, domain);
Run Code Online (Sandbox Code Playgroud)

编译器抱怨它.它说:

cannot find symbol
symbol : constructor ServiceResolver(int,java.lang.String,java.lang.String,java.lang.String)
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为我在ServiceResolver中有一个构造函数:

public void ServiceResolver(int ifIndex, String serviceName, String regType, String domain) {
        this.ifIndex = ifIndex;
        this.serviceName = serviceName;
        this.regType = regType;
        this.domain = domain;
    }
Run Code Online (Sandbox Code Playgroud)

ADDED:void从构造函数中删除了它的工作原理!为什么?

java constructor compilation

6
推荐指数
2
解决办法
3304
查看次数

我可以关闭并重新打开套接字吗?

我学习了套接字使用的一个例子.在此示例中,客户端向服务器发送请求以打开套接字然后服务器(侦听特定端口)打开套接字并且一切正常,套接字从双方(客户端和服务器)"打开".

但我仍然不清楚这些东西有多灵活.例如,客户端是否可以关闭打开的(从两端)套接字并再次重新打开它(在服务器保持套接字打开的情况下).

服务器是否可以"知道"客户端上的套接字已关闭?客户端是否可以知道服务器端的套接字已关闭?

添加:

对我来说更重要的一件事.如果应用程序(无主服务器或客户端)崩溃,异常终止,被杀,会发生什么?它会关闭应用程序侧面打开的所有套接字吗?

增加2:

如果套接字一侧的应用程序被关闭(终止,关闭,终止)然后再次打开(在相同的IP地址和相同的端口上),该怎么办?我们应该在两个应用程序之间创建一个新套接字,还是可以使用旧套接字(在崩溃之前创建).

java sockets networking

6
推荐指数
2
解决办法
9768
查看次数

为什么这个break语句不起作用?

我有以下代码:

public void post(String message) {
    final String mess = message;
    (new Thread() {
        public void run() {
            while (true) {
                try {
                    if (status.equals("serviceResolved")) {
                        output.println(mess);
                        Game.log.fine("The following message was successfully sent: " + mess);
                        break;
                    } else {
                        try {Thread.sleep(1000);} catch (InterruptedException ie) {}
                    }
                } catch (NullPointerException e) {
                    try {Thread.sleep(1000);} catch (InterruptedException ie) {}
                }
            }
        }
    }).start();
}
Run Code Online (Sandbox Code Playgroud)

在我的日志文件中,我发现了很多像这样的行:

The following message was successfully sent: blablabla
The following message was successfully sent: blablabla
The following …
Run Code Online (Sandbox Code Playgroud)

java loops break

6
推荐指数
1
解决办法
2135
查看次数

自修改html-JavaScript文件

我想有一个带有JavaScript的html文件,其中(文件)能够修改其上下文.更多细节,我想象它.我有一个html文件,我用浏览器打开.我有一个文本区域,我在那里键入我的文本,然后按提交按钮.因此,表单的上下文保存在html文件中的某处.最简单,最稳定的方法是什么?

html javascript self-modifying

6
推荐指数
1
解决办法
3418
查看次数

我可以通过将一个大表分成许多小表来优化我的数据库吗?

假设我有一个包含三列的大表:"user_name","user_property","value_of_property".Lat也假设我有很多用户(比如10万)和很多属性(比方说10 000).然后桌子将是巨大的(10亿行).

当我从表中提取信息时,我总是需要有关特定用户的信息.所以,我用,例如where user_name='Albert Gates'.因此,每次mysql服务器需要分析10亿行时,找到包含"Albert Gates"作为user_name的那些行.

将大表拆分成与固定用户相对应的许多小表是不明智的?

mysql optimization split

6
推荐指数
1
解决办法
3256
查看次数

如何使用*.o和*.d文件?

我想尝试使用库运行示例.在库的文档中写道,我需要将所有文件复制到我的目录中而不是键入make.之后,我需要转到"Debug"文件夹并键入./lib_examples以运行示例.

我执行了这个序列.因此,我有很多*.o*.d文件中的"调试"子目录.其中有lib_examples.olib_examples.h文件.但是没有lib_example我应该执行的文件.

有谁知道应该发生什么以及它出错了.我应该再做一步才能使用*.o*.d文件吗?

c++ makefile compilation

5
推荐指数
1
解决办法
1万
查看次数

如何使用std :: bind?

解释如何std::bind使用的一个简单示例如下:

假设我们有3个参数的函数:f3(x,y,z).我们想要一个2个参数的函数,定义为:f2(x,y) = f3(x,5,y).在C++中,我们可以轻松地执行以下操作std::bind:

auto f2 = std::bind(f3, _1, 5, _2);
Run Code Online (Sandbox Code Playgroud)

这个例子对我很清楚:std::bind将一个函数作为它的第一个参数,然后它接受另外两个参数,其中n是作为第一个参数的函数的参数个数std::bind.

但是,我发现另一个使用bind:

void foo( int &x )
{
  ++x;
}


int main()
{
  int i = 0;

  // Binds a copy of i
  std::bind( foo, i ) (); // <------ This is the line that I do not understand.
  std::cout << i << std::endl;

}
Run Code Online (Sandbox Code Playgroud)

很明显,foo有一个论点,std::bind并设置为i.但是为什么我们之后又使用另一对括号(foo, i)?为什么我们不使用输出std::bind?我的意思是,我们为什么不拥有auto f …

c++ bind std

5
推荐指数
1
解决办法
360
查看次数

当用"class_name obj_name {func()}"替换"class_name obj_name = func()"时有意义吗?

在代码中,我看到以下构造:

const class_name obj_name{func()};
Run Code Online (Sandbox Code Playgroud)

func()返回一个名为的类的对象class_name.所以,我想知道为什么不使用以下结构:

const class_name obj_name = func();
Run Code Online (Sandbox Code Playgroud)

c++ initializer-list assign

5
推荐指数
1
解决办法
110
查看次数