gpt4 book ai didi

Java非阻塞套接字写入

转载 作者:行者123 更新时间:2023-12-02 07:44:57 24 4
gpt4 key购买 nike

我正在寻找有关 Java 中非阻塞套接字写入的建议。我的代码只需要将一些数据写入套接字并完全忘记它。我不关心响应或数据何时被实际消耗。最好的方法是什么?

最佳答案

在我看来,您正在追求异步 I/O。这是一个简短的示例:

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousSocketChannel;
import java.nio.channels.CompletionHandler;

public class Test
{
public static void main(String[] args)
{
final AsynchronousSocketChannel out = AsynchronousSocketChannel.open();
out.connect(new InetSocketAddress("www.google.com", 80), null,
new CompletionHandler<Void, Void>()
{
@Override
public void completed(Void result, Void attachment)
{
ByteBuffer buffer = ByteBuffer.allocate(1024);
buffer.asCharBuffer().put("GET /index.html HTTP/1.1");
out.write(buffer, null, new CompletionHandler<Integer, Void>()
{
@Override
public void completed(Integer result, Void attachment)
{
// ignore the result
}
@Override
public void failed(Throwable t, Void attachment)
{
t.printStackTrace();
}
});
}

@Override
public void failed(Throwable t, Void attachment)
{
t.printStackTrace();
}
});
}
}

您不需要任何花哨的框架。 Java7异步套接字非常容易使用。

关于Java非阻塞套接字写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11021664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com