gpt4 book ai didi

java - 如何从 TCP 套接字获取数据到 ByteBuffer

转载 作者:可可西里 更新时间:2023-11-01 02:37:29 25 4
gpt4 key购买 nike

我需要将传入数据从套接字获取到 ByteBuffer 中,但我不知道该怎么做。我是这个领域的新手,因此不确定最好的开始方式。我发现了以下内容,但这不是我想要的,因为它获取了在线数据,但我需要将所有数据保存在字节缓冲区中以用于其他目的。

ServerSocket welcomeSocket = new ServerSocket(Integer.parseInt(ibmPort));
while (true) {
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println("Received: " + clientSentence);
setRequestDataFromCT(clientSentence);
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}

最佳答案

此代码将读取所有字节并将它们存储在 ByteBuffer 中,您可能需要调整 bufferSize 以存储您需要的所有数据。

int bufferSize = 8192;
ServerSocket welcomeSocket = new ServerSocket(Integer.parseInt(ibmPort));
while (true) {
Socket connectionSocket = welcomeSocket.accept();
ByteBuffer bf = ByteBuffer.allocate(bufferSize);
BufferedInputStream inFromClient = new BufferedInputStream(connectionSocket.getInputStream());
while (true) {
int b = inFromClient.read();
if (b == -1) {
break;
}
bf.put( (byte) b);
}
connectionSocket.close();
}

关于java - 如何从 TCP 套接字获取数据到 ByteBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12478845/

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