小编fre*_*crs的帖子

XMPP使用哪些端口?

我搜索过并没有找到XMPP使用的端口.我需要实现XMPP服务器和客户端,并使用XML传输,文件传输和流式传输.他们使用不同的端口?有没有办法可以让他们使用所有相同的,所以我不需要打扰网络管理员?谢谢

xmpp ports

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

带有类名的exception.getMessage()输出

我正在尝试修复一个问题,在我的应用程序中我有这个代码

try {
  object1.method1();
} catch(Exception ex) {
   JOptionPane.showMessageDialog(nulll, "Error: "+ex.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

而object1会做类似的事情:

public void method1() {
   //some code...
   throw new RuntimeException("Cannot move file");
}
Run Code Online (Sandbox Code Playgroud)

我的选项窗格中出现了这样一个消息: Error: java.lang.RuntimeException: Cannot move file

但是我使用的getMessage不是toString方法,所以不应该出现类的名称,对吧?

我做错了什么?我已经尝试了很多例外,甚至Exception本身.我希望解决这个问题,而不需要实现我自己的Exception子类

问题已解决 - 谢谢大家!

实际上是在SwingWorker的get()方法中调用了try和catch,它构造了一个ExecutionExceptiondoInBackground抛出的异常() 我修复了这样做:

@Override
protected void done() {
    try {
        Object u = (Object) get();
        //do whatever u want
    } catch(ExecutionException ex) {
        JOptionPane.showMessageDialog(null, "Error: "+ex.getCause().getMessage());
    } catch(Exception ex) { …
Run Code Online (Sandbox Code Playgroud)

java exception-handling

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

尝试使用String.split("\\?")时出现意外行为

所以我有一个像这样的字符串:

"Some text here?Some number here"
Run Code Online (Sandbox Code Playgroud)

我需要拆分那些,我正在使用String.split("\\?"),但如果我有这样的字符串:

"This is a string with, comma?1234567"
Run Code Online (Sandbox Code Playgroud)

我也把它分成了逗号(,).如果我有这个字符串:

"That´s a problem here?123456"
Run Code Online (Sandbox Code Playgroud)

它也分裂了´,那我怎么解决这个问题呢?

java string split

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

BitTorrent和Gnutella在传输文件时使用什么来绕过NAT?

我正在尝试用Java共享原型/软件的p2p文件.我有兴趣学习使用socket,所以不,我不会使用JXTA或任何类型的API.

我读过关于TCP打孔的内容,它可能不适用于所有NAT类型.但我可以看到Gnutella和BitTorrent总是适用于我尝试的每台机器/ NAT.那么他们是否使用TCP Hole Punching来启动主机之间的连接?

此外,像这样的代码会进行TCP打孔吗?

    final ServerSocket s = new ServerSocket(7777);
    Thread t = new Thread(new Runnable(){

        public void run() {
            try
            {
                s.accept();
            }
            catch(Exception ex)
            {

            }
        }
    });

    Socket sock = new Socket();
    sock.connect(new InetSocketAddress("IP ADDRESS", 7777), 50000);
Run Code Online (Sandbox Code Playgroud)

java bittorrent tcp

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

在java中实现我自己的远程桌面

我正在尝试在java中实现自己的远程桌面解决方案.使用套接字和TCP/UDP.我知道我可以使用VNC或其他任何东西,但它是我想要做的学校任务.

因此,为了移动鼠标并单击,我可以使用Robot类.我有两个问题:

  1. 发送视频怎么样?我知道Robot类也可以捕获屏幕,所以我应该按顺序发送图像并按顺序显示在连接的另一端?这是实现远程桌面的最佳方式吗?

  2. 我还应该使用TCP还是UDP?我认为UDP将更难实现,因为我必须弄清楚哪个图像接着另一个.

java networking desktop

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

Jersey webservice可扩展的方法来下载文件并回复客户端

我需要使用Jersey构建一个web服务,从另一个服务下载一个大文件并返回给客户端.我希望jersey将一些字节读入缓冲区并将这些字节写入客户端套接字.

我希望它使用非阻塞I/O,所以我不要让线程忙.(这无法实现)

    @GET
    @Path("mypath")
    public void getFile(final @Suspended AsyncResponse res) {
        Client client = ClientBuilder.newClient();
        WebTarget t = client.target("http://webserviceURL");
        t.request()
            .header("some header", "value for header")
                .async().get(new InvocationCallback<byte[]>(){

            public void completed(byte[] response) {
                res.resume(response);
            }

            public void failed(Throwable throwable) {
                res.resume(throwable.getMessage());
                throwable.printStackTrace();
                //reply with error
            }

        });
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有这个代码,我相信泽西岛将下载完整的文件,然后将其写入客户端,这不是我想要做的.有什么想法吗??

java web-services scalability jersey nonblocking

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

Java线程是在用户空间还是内核空间中创建的?

检查此代码

    Thread t1 = new Thread(new Runnable() {

        @Override
        public void run() 
        {
            try
            {
                System.out.println("STARTING SERVER...");
                ServerSocket s = new ServerSocket(2544);
                System.out.println("SERVER BLOCKED ON ACCEPT");
                Socket ss = s.accept();
                System.out.println("SERVER NOT BLOCKED ANYMORE");
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }
    });
    t1.start();



    Thread t2 = new Thread(new Runnable() {

        @Override
        public void run() 
        {
            try
            {
                while(true)
                {
                    Thread.sleep(1000);
                    System.out.println("Hello");
                }
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }
    });
    t2.start();
Run Code Online (Sandbox Code Playgroud)

输出:

STARTING SERVER...
SERVER BLOCKED ON ACCEPT
Hello
Hello …
Run Code Online (Sandbox Code Playgroud)

java multithreading kernel

8
推荐指数
2
解决办法
8842
查看次数

关于自己协议的设计/实现的提示

在我工作的地方,我们需要一个能够:

  • 用户登录/注销
  • 发送/接收说明
  • 发送/接收文件
  • 发送/接收音频流(可以使用RTP)
  • 发送/接收小型XML文件使用
  • 所有这些的密码学.

它将在java中实现.所以我有一些问题,因为我还没有实现过网络协议.

  1. 是否可以使用现有协议来构建这个协议?
  2. 我可以使用什么工具来帮助我设计协议?用于"建模"
  3. 是否有可能完成这一切,独自完成?我有足够的时间来做这件事.

我在Java和C++方面有很好的背景,但还没有使用套接字/网络编程.

谢谢

java sockets networking protocols

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

如果Java字符串是不可变的StringBuilder是可变的,为什么他们浪费在我的代码的内存一样多吗?

我运行了那些代码,我得到了一些问题,这有点奇怪.

使用字符串:

while(true)
{
    String s = String.valueOf(System.currentTimeMillis());
    System.out.println(s);
    Thread.sleep(10);
}
Run Code Online (Sandbox Code Playgroud)

使用StringBuilder:

StringBuilder s = null;
    while(true)
    {
        s = new StringBuilder();
        s.append(System.currentTimeInMillis());
        System.out.println(s);
        Thread.sleep(10);
    }
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,他们都会陷入12540 K的内存浪费.在Windows XP SP2上运行此测试.

他们为什么浪费相同数量的记忆?为什么不可变的String会停止浪费内存?偏离主题:如何转换StringBuilder为特定字符集中编码的字节数组?

java string immutability

5
推荐指数
2
解决办法
9691
查看次数

获取电池电压

有没有办法可以通过系统调用来获取 Android 中的实际电池电压?我希望做这样的事情:

double voltage = getVoltage();
//run code
double newVoltage = getVoltage();
Run Code Online (Sandbox Code Playgroud)

谢谢

编辑-工作代码:

fun getVoltage(context: Context): Int {
    val intent = context.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
    return intent?.getIntExtra(android.os.BatteryManager.EXTRA_VOLTAGE, -1) ?: -1
}
Run Code Online (Sandbox Code Playgroud)

android

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