我有以下代码:
private static final Set<String> allowedParameters;
static {
Set<String> tmpSet = new HashSet();
tmpSet.add("aaa");
allowedParameters = Collections.unmodifiableSet(tmpSet);
}
Run Code Online (Sandbox Code Playgroud)
它导致:
Note: mygame/Game.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Run Code Online (Sandbox Code Playgroud)
当我使用建议的选项重新编译时,我看到一个指针(^)指向前面的"新" HashSet();
.
有谁知道这里发生了什么?
在客户端应用程序中我调用new Socket(serverIP,serverPort)
. 结果,客户端应用程序向服务器应用程序发送打开套接字的请求。它会启动一个新线程吗?我的意思是以下哪项是正确的?
客户端应用程序发送请求并立即开始执行以下命令(不等待应答)。
客户端发送请求并等待答复。一旦获得答案,客户端应用程序就会继续执行以下命令。
第二种情况对我来说似乎更现实、更符合逻辑。但是,我不明白如果服务器不打开套接字并且它没有说它不“想要”打开第二个套接字(如果服务器不存在或网络损坏,则可能会发生这种情况)会发生什么。在这种情况下会发生什么?服务器会永远等待吗?
一般来说,客户端最好知道其对套接字的请求的结果是什么。例如我可以想象以下情况:
套接字由服务器打开。
服务器拒绝打开套接字。所以,服务器存在,它收到了客户端的请求,但它说“不”。
服务器没有响应。
我知道new Socket(serverIP,serverPort)
不会“返回”此类信息。但它会引发异常。其中之一是“UnkownHostException”。什么时候抛出?当服务器有一段时间没有响应时(多长时间)?
添加:
我刚刚发现抛出UnknownHostException表示无法确定主机的IP地址。因此,它与上述情况无关(服务器没有响应,服务器拒绝打开套接字)。
我们创建一个套接字.在套接字的一侧,我们有一个"服务器",另一边有一个"客户端".服务器和客户端都可以写入和读取套接字.这是我的理解.我不明白以下事项:
如果服务器从套接字读取,它是否只在套接字中看到客户端写入套接字的那些东西?我的意思是如果服务器向套接字写入内容而不是从套接字读取,它(服务器)是否会在套接字中看到它(服务器)在那里写的内容?我希望不是.
让我们考虑以下情况.客户端向套接字写入内容,然后将新内容写入套接字,然后服务器从套接字读取.服务器会在那里看到什么?只有客户写的"新"东西或"新"和"旧"的东西?
如果客户端(或服务器)写入套接字,它是否可以查看其他方是否收到了书面信息?例如,out.println("Hello, Server!")
将返回true
服务器收到此消息.
我有以下3行代码:
ServerSocket listeningSocket = new ServerSocket(earPort);
Socket serverSideSocket = listeningSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(serverSideSocket.getInputStream()));
Run Code Online (Sandbox Code Playgroud)
编译器抱怨所有这三行,并且它对所有3行的抱怨是相同的:未报告的异常java.io.IOException; 在更多的细节,这些异常被抛出new ServerSocket
,accept()
和getInputStream()
.
我知道我需要使用try ... catch ...
.但为此,我需要知道在每个特定情况下这个例外意味着什么(我应该如何解释它们).什么时候发生?我的意思是,不是一般的,而是在这3个特殊情况下.
到目前为止,我将我的应用程序用作独立产品.因此,当用户按下"停止"按钮时,我打电话给System.exit(0);
它,这很好.
现在我的应用程序将从另一个程序调用(以编程方式).所以,我担心这System.exit(0);
不仅会杀死我的程序,还会杀死启动我程序的外部软件.
那么,如果收到来自外部软件的相应请求,关闭我的应用程序的正确方法是什么?我的应用程序是GUI应用程序.所以,我想关闭窗口,但我也想关闭我的程序执行的所有进程.
添加:
更具体地说,我想关闭我的程序启动的所有线程.我的程序没有启动任何操作系统进程或任何其他程序.
我尝试按以下方式进行:
右键单击项目名称.
单击下拉菜单中的构建路径.
单击"配置构建路径"
然后我不知道该怎么做.我应该选择"来源","项目","图书馆","订单和出口"吗?
在"库"中,我有"添加JAR ..."和"添加外部JAR ......".我应该选择什么?(我的项目的lib文件夹中已经有一个.jar文件.)
添加:
如果我点击"库"选项卡中的"添加JAR",我会看到"lib"子文件夹,但如果我去那里,我看不到我的.jar文件(我知道它在那里).
我正在搜索用PHP编写的RSS解析器.问题不在于我找不到一个.问题是有太多而且很难决定使用哪一个(特别是当我没有使用它们并尝试它们太耗费时间).
谁能推荐我一个"好"的RSS解析器?
以下要求对我很重要(按重要性排序):
在我的数据库中,我有以下文字:
for x in values:
print x
Run Code Online (Sandbox Code Playgroud)
我想在我的HTML页面上打印此代码.它由PHP打印到HTML文件中.但是当浏览器显示HTML时,我当然看不到这种形式的文本.我看到以下内容:
for x in values: print x
Run Code Online (Sandbox Code Playgroud)
我部分解决了这个问题nl2br
,我也用了str_replace(' ',' ',$str)
.结果我得到了:
for x in values:
print x
Run Code Online (Sandbox Code Playgroud)
但我仍然需要print x
向右移动.我以为我可以通过解决问题str_replace('\t',' ',$str)
.但我发现str_replace
在打印之前没有将空格识别为'\ t'.这个空间也不被认为只是一个空间.换句话说,我
之前没有得到任何print
.
为什么?问题怎么解决?
我正在尝试使用 Eclipse 编写、编译和执行“HelloWorld”C++ 程序。我已经成功安装并运行 Eclipse,创建一个新项目并编写 HelloWorld 程序。现在我想编译它并运行。
我在 Eclipse 中没有找到“Compile”选项,但在“Project”菜单中找到了“Build Project”选项。我认为构建就是我所说的“编译”。单击此选项后,Eclipse 生成“Debug”文件夹,其中包含“src”子文件夹以及 3 个文件:“sources.mk”、“objects.mk”和“makefile”。首先,我不知道这些文件的含义(以及其中哪个是我的“可执行文件”)。其次,我仍然需要执行我的程序。我尝试单击“运行”菜单中的“运行”选项。结果我收到一条错误消息:“启动失败。找不到二进制文件”。
请任何人帮助我使用 Eclipse 编译和运行我的代码。
短版的问题:是什么objects.mk
,sources.mk
,makefile
,subdir.mk
,*.o
和*.d
Eclipse生成的文件?
问题的长版:
workspace
目录。每当我创建一个项目并将其命名为ProjectName
一个新目录(也称为ProjectName
)时,Eclipse 就会在该workspace
文件夹中创建一个新目录(也称为)。ClassName.cpp
和头文件ClassName.h
)相关联。这些文件被放入workspace/ProjectName/src
文件夹中。Build
在 Eclipse 中我的项目并在workspace/ProjectName
一个新文件夹中出现。它被称为Debug
。ProjectName
. 它是可执行文件。如果我在命令行中输入它的名字,我的程序就会被执行。objects.mk
, sources.mk
, makefile
.Debug
文件夹中有src
目录。它包含subdir.mk
我不知道其含义的文件以及ClassName.o
andClassName.d
文件(如果我有 N 个类,那么将有 N 对*.o
and*.d
文件。)任何人都可以解释这些文件的含义和目的吗?
java ×6
eclipse ×3
php ×2
sockets ×2
api ×1
atom-feed ×1
buildpath ×1
c++ ×1
client ×1
collections ×1
compilation ×1
execute ×1
exit ×1
generics ×1
hashset ×1
html ×1
jar ×1
networking ×1
nl2br ×1
parsing ×1
rss ×1
str-replace ×1
termination ×1