java在字节之间的socket之间发送字符串
我有两个socket连接并发送文件。我想在某个时刻向第二个插座发送信号。我想发送一个字符串“start”,当接收器socket收到它时,我执行一些操作。下面是收件人和发件人的代码。我做错了什么?接收器从未收到“开始”,我确信它已被发送。谢谢
发送方:
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);
}
# 1 楼答案
我认为错误可能在这里:
如果你看一下,
write()
方法不在这行的任何地方。 另外,我想问,你自己处理字符串序列化有什么特别的原因吗?可以对字符串使用PrintWriter
和Scanner
之类的内容,也可以对任何类型的对象使用ObjectOutputStream
和ObjectInputStream