小编a C*_*CVn的帖子

Linux套接字编程中接受后的错误号

accept()手册页RETURN VALUE部分所述:

错误处理
Linux accept()(和accept4())将新套接字上已经挂起的网络错误作为错误代码从accept(). 此行为不同于其他 BSD 套接字实现。为了可靠运行,应用程序应该检测为协议定义的网络错误,accept()EAGAIN通过重试来处理它们。在TCP / IP的情况下,这些都是 ENETDOWNEPROTOENOPROTOOPTEHOSTDOWNENONETEHOSTUNREACHEOPNOTSUPP,和ENETUNREACH

这是否意味着必须errnoaccept()返回之后和检查 的返回值之前检查 的值accept()?如果是,如果errno设置,必须采取哪些步骤?

这是我的代码处理片段accept()

newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
if((errno == ENETDOWN || errno == EPROTO || errno == ENOPROTOOPT || errno == EHOSTDOWN ||
    errno == ENONET …
Run Code Online (Sandbox Code Playgroud)

c sockets linux error-handling

3
推荐指数
1
解决办法
6164
查看次数

在Java(Servlet)中放置应用程序范围的设置?

在ASP.NET中,web.config可以保存应用程序范围的设置.是否有相应的文件(位于外侧warjar为Java EE Servlet的档案)?

我需要的是指出一个配置文件的地方,该配置文件当前包含四个属性,这四个属性反过来一起导致存储其余数据和配置的数据库.(服务器,数据库,用户名和密码.)这些值需要易于更改,无需重新打包和重新部署整个应用程序,因此配置文件,但硬编码应用程序中配置文件的路径(即使它是一个常量)似乎远非最佳.

任何提示?我已经尝试了谷歌,但发现它似乎很少相关 - 而我所发现的东西看起来似乎过于设计,以满足我的需求.

java servlets web-config configuration-files

2
推荐指数
1
解决办法
1886
查看次数

填充后将文本区域滚动到顶部

我有一些文本区域充满了信息循环。循环完成后是否可以使其“跳转”或自动滚动回到顶部,以便用户从头开始而不是从头看到?

java loops textarea awt

2
推荐指数
1
解决办法
3691
查看次数

在 HttpURLConnection 上设置 FollowRedirects 的实例值

我已经用谷歌搜索了这个,并检查了文档,但无法找到答案。所以现在我希望这里有人至少能就从哪里开始提出一个好的建议。

我有(为了清楚起见缩写):

import java.net.URL;
import java.net.HttpURLConnection;

URL myUrlObject = new URL("some ungodly long URL");
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection connection = (HttpURLConnection) myUrlObject.openConnection();
Run Code Online (Sandbox Code Playgroud)

原则上,这工作得很好。然而,我有点担心setFollowRedirects()在服务器应用程序中调用静态(代码作为 servlet 运行),以及它如何与多个并发实例(可能是想要自动遵循重定向的代码)交互。因此,我宁愿在实例对象上设置它,然后使用该实例对象打开连接。问题是我无法直接实例化 HttpURLConnection 对象,并且在我的实验中,似乎无论我做什么(除了之前执行 setFollowRedirects(false) 之外), openConnection() 默认情况下都会遵循它遇到的任何重定向。我坚持使用 URL 另一侧的应用程序实现(在正常情况下可以返回 HTTP 200 OK 或 302 Found,无论哪种方式,我都需要捕获初始响应

另外需要注意的是,实际访问 myUrlObject 指向的资源在时间上可能会相对昂贵,并且完成后,我可以预期我的代码将由许多用户以相当快的速度连续执行(从而导致并发执行)。即使仅出于这个原因,我也不想在 openConnection() 调用周围使用外部锁定机制。

关于如何最好地进行的任何建议?

java

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

org.xml.sax.SAXParseException:prolog中不允许使用内容

是的,我知道这个问题的一般形式一次又一次被问到.但是,我找不到任何帮助我解决问题的方法,所以我发布了这个问题,特别是我的问题.

我试图弄清楚为什么我得到一个SAXParseException(Content is not allowed in prolog.)因为OpenSAML库试图解析一些XML.我发现最有用的提示指向文件开头的错误BOM,但没有类似的东西.我还编写了一个快速而肮脏的C#.NET例程,将整个文件作为一个字节数组读取,迭代它并告诉我它们是否> = 0x80(它没有找到).XML标记为utf-8.我希望有人可以就可能出现的问题向我提供一些见解.

XML文件的初始部分,作为十六进制转储,是(注意使用0A换行符;删除换行符完全没有明显效果):

000000000  3C 3F 78 6D 6C 20 76 65-72 73 69 6F 6E 3D 22 31   |<?xml version="1|
000000010  2E 30 22 20 65 6E 63 6F-64 69 6E 67 3D 22 55 54   |.0" encoding="UT|
000000020  46 2D 38 22 3F 3E 0A 3C-6D 64 3A 45 6E 74 69 74   |F-8"?>.<md:Entit|
000000030  79 44 65 73 63 72 69 70-74 6F 72 …
Run Code Online (Sandbox Code Playgroud)

java sax

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

找出目录中是否存在比给定日期/时间更新的文件?

假设我有一个目录列表,每个目录可能包含也可能不包含我想要考虑的子目录.

我们还说我有一个时间戳列表,一个列表中的每个目录(但不是子目录).这些被称为具有隐式时区的日期和时间,因此可以相当容易地转换为Unix时间戳,如果这样可以更容易比较.

对于列出的每个目录,我如何确定目录中是否存在比我对相关目录的时间戳更新(mtime或ctime,但不是atime)更新的文件?

我真的不知道哪个特定文件比时间戳更新,只是根本不存在任何这样的文件.

基本上,我想编写一个脚本,当运行时执行特定操作,如果在给定时间点之后任何一个目录中的任何一个文件已被更改,并且需要提出一种方法来检测是否有任何内容改变.

filesystems perl

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

Java条件语句和子类

我是Java的新手,我正试图弄清楚如何动态确定是否使用特定的子类.

这是我破碎的代码:

if(length == width){
    Square myBox = new Square();
}else{
    Rectangle myBox = new Rectangle();
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是当长度和宽度(由用户输入)相等时使用"Square"子类.我不知道如何让它做我想做的事情,所以我使用了来自PHP的更广泛经验的"通用编码逻辑"(显然无济于事;到目前为止,我学习Java的最大困难是从PHP切换到Java在我的脑海里,哈哈)

所以我想知道是否有办法做到这一点.如果没有,那就没关系,我会废弃它.我以为我会问.

java

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

如何判断字符串中是否有未知数字?

我有一个if语句,检查变量是否等于某个字符串.但是,我想检查字符串中是否还有一个数字.像这样的东西:

if(thestring.equals("I, am awesome. And I'm " + Somehowgetifthereisanumberhere + " years old")) {
    //Do stuff
}
Run Code Online (Sandbox Code Playgroud)

或者更具体地说,x是未知数字,只知道那里有一个数字(任何数字):

String str = item.substring(item.indexOf("AaAaA" + x), item.lastIndexOf("I'm cool."));
Run Code Online (Sandbox Code Playgroud)

怎么做?

java string

0
推荐指数
1
解决办法
162
查看次数

在这种情况下,为什么我可以访问私有变量?

我有一个私有int变量,我通过test.a访问此变量.为什么这样可以?我认为这种方式只有在我有一个变量而不是私有的公共int时才有可能.

public class Test {

    private int a;

    public static void main(String[] args) {
        Test test = new Test(5);
        System.out.println(test.a);
    }

    public Test (int a) {
        this.a = a;
    }
}
Run Code Online (Sandbox Code Playgroud)

java variables private

-1
推荐指数
2
解决办法
96
查看次数