socketchannel

    10热度

    3回答

    如何使用TLS保护Java SocketChannel,ServerSocketChannel或者甚至可以保护DatagramChannel? 我知道有一些框架(#1#2)宣传是可以的,但我想知道是否有可能通过纯Java标准库来实现这一目标。

    1热度

    2回答

    在客户机端,读码: byte[] bytes = new byte[50]; //TODO should reuse buffer, for test only ByteBuffer dst = ByteBuffer.wrap(bytes); int ret = 0; int readBytes = 0; boolean fail = false; try { while ((

    1热度

    2回答

    在我的使用java nio的程序中,当它试图连续写入10 KB消息时,socketchannel.write()变得非常慢。测量写完整10 KB消息的时间在160 ms和200 ms之间。但编写完整的5 KB消息的时间仅需要0.8 ms。 在选择器中,我只有Selection.OP_READ并且不处理Selection.OP_WRITE。当收到一个大的完整消息时,它将被写入另一个接收器4次。 有人

    0热度

    2回答

    我正在尝试读取一个非阻塞的套接字以避免卡在程序中的某个位置。有谁知道为什么当我尝试读取总是返回零?这将是一个ByteBuffer的问题?在读取方法中,长度始终为零的情况下会发生此问题。 package com.viewt.eyebird.communication; import java.io.IOException; import java.net.InetSocketAddress;

    0热度

    1回答

    我已经编写了一个用于远程存储(iSCSI目标)的Java服务器。客户端可以通过发送携带数据有效载荷的数据包序列来写入数据。这些数据包包含一个固定长度的头(48字节),后跟一个可变长度的数据段。数据段的长度在标题中指定,可以认为是固定的(8KiB)。 接收数据包是一个由两部分组成的过程。首先将标题读入一个大小为48字节的ByteBuffer。之后立即通过ByteBuffer.allocate(...

    0热度

    1回答

    我试图在android中的两个模拟器之间建立一个套接字通道。我写了下面的代码: public SocketChannel connect2node(String ip, int port) { SocketChannel client = null; try { client = SocketChannel.open(new InetSocketAddress

    0热度

    1回答

    这听起来很奇怪。我创建了一个基于每个套接字结构的线程的游戏服务器(是的,每个用户只有一个线程;响应由工作线程发送给客户端)。我生成的线程首先对用户进行身份验证并处理登录,之后它只接收数据并将其排队等待处理。认证部分非常关键,需要很长时间才能实现,并且需要很长时间才能再次实现,因此我认为在认证完成后,我可以将我拥有的阻塞套接字转换为SocketChannel的套接字,以便Selector可以以非阻塞

    16热度

    7回答

    我正在玩NIO库。我试图在端口8888上监听连接,一旦连接被接受,将该通道中的所有内容转储到somefile。 我知道如何使用ByteBuffers来做到这一点,但我想让它与据称超高效的FileChannel.transferFrom一起工作。 这是我得到: ServerSocketChannel ssChannel = ServerSocketChannel.open(); ssChannel

    1热度

    2回答

    我有一个很难搞清楚这一个。我有以下代码: if (selector.select(1000) <= 0) { return; } Set<SelectionKey> selectionKeys = selector.selectedKeys(); for (SelectionKey key : selectionKeys) { try {

    1热度

    2回答

    我正在使用Java 1.6的即时通讯工作。 IM使用多线程 - 主线程,接收和ping。对于TCP/IP通信,我使用SocketChannel。从服务器接收更大的包似乎有问题。服务器,而不是一个发送一些包,这就是问题开始的地方。每前8个字节是告诉什么是什么类型的包,它有多大。这是我如何管理阅读: public void run(){ while(true){ try{