gpt4 book ai didi

java - 在字节之间的套接字之间发送字符串

转载 作者:太空宇宙 更新时间:2023-11-04 12:22:54 25 4
gpt4 key购买 nike

我有 2 个套接字连接并发送文件。我想在某个时刻向第二个套接字发送信号。我想发送一个字符串“start”,当接收器套接字收到它时,我执行一些操作。下面是接收者和发送者的代码。我究竟做错了什么?接收者永远不会得到“开始”,我确信它已被发送。谢谢

发送方:

byte[] buff = new byte[1024 * 50];    
while (isRunning && (readBytes = data.read(buff, 0, buff.length)) != -1) {
client.getOutputStream().write(buff, 0, readBytes);
if(sendStart){
client.getOutputStream().("start".getBytes("UTF-8"), 0, "start".getBytes("UTF-8").length);
sendStart = false;
}
}

接收方:

DataInputStream in = null;
try {
in = new DataInputStream(socket.getInputStream());
} catch (IOException e) {
}

byte buffer[] = new byte[1024 * 50];
while ((len = in.read(buffer)) != -1) {
String received = new String(buffer, "UTF-8");
if(received!=null && received.equals("start")){
Log.d(TAG,"received start");
//do something
}
receivedFile.write(buffer, 0, len);
}

最佳答案

我认为错误可能在这里:

client.getOutputStream().("start".getBytes("UTF-8"), 0, "start".getBytes("UTF-8").length);

如果你仔细观察,就会发现 write() 方法不在这一行的任何地方。另外,我想问,您自己处理字符串序列化是否有特殊原因?您可以对字符串使用 PrintWriterScanner 之类的东西,也可以对任何类型的对象使用 ObjectOutputStreamObjectInputStream

关于java - 在字节之间的套接字之间发送字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38646013/

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