Android 端口处的java接收连接
我在messenger应用程序中使用一个端口来接收文件和消息。我想问我如何区分文件和消息?我已经研究并发现我将不得不做一个protoco,我试过了,但我似乎做不到。有没有办法做到这一点 现在我收到的连接如下:Android 端口处的java接收连接,android,Android,我在messenger应用程序中使用一个端口来接收文件和消息。我想问我如何区分文件和消息?我已经研究并发现我将不得不做一个protoco,我试过了,但我似乎做不到。有没有办法做到这一点 现在我收到的连接如下: public class ReceiveConnection extends Thread { Socket clientSocket = null; public ReceiveConnection(Socket socket) {
public class ReceiveConnection extends Thread {
Socket clientSocket = null;
public ReceiveConnection(Socket socket)
{
this.clientSocket = socket;
SocketOperator.this.sockets.put(socket.getInetAddress(), socket);
}
@Override
public void run() {
try {
BufferedReader in = new BufferedReader(newInputStreamReader(clientSocket.getInputStream()));
while ((inputLine = in.readLine()) != null) {
if (inputLine.contains("TEXT") == true)
{
Log.i("SocketOP","text");
appManager.messageReceived(inputLine);
}
}
if (inputLine.contains("TEXT") == false)
{
InputStream is=clientSocket.getInputStream();
while(is!= null){
Log.i("SocketOP","filee");
appManager.fileReceived(is);
}
}
我已将字符串文本与我的文本消息关联起来,因此它将通过。放置ELSE语句不起作用。如何在文件中添加通知程序,以便知道何时收到文件?您应该创建包含以下数据的消息头: 以作为消息分隔符的2-4字节长的唯一字节序列开始。这应该是一个独特的非文本序列,不是很常见,例如不是CRLF或其他控制序列 包含消息类型字节,以便您知道这是文本消息还是文件 包含消息的长度,这有助于提取消息
请努力格式化您的代码。那种形式真的很难理解。谢谢你的回复。不过,我不明白你的第二点。我也不知道如何把它取回来。对不起,我是初学者,你能详细说明一下吗。也许是个例子?非常感谢。或者如果你能给我一个链接来解释一下:谢谢。在接收端,你需要知道数据的类型。你有文本和文件。你需要区分它们,因为你对待它们的方式不同。这正是我要问的。我该怎么做?我绞尽脑汁,但徒劳无功。在发送数据之前,请按上述方式发送标题。它帮助您解码接收端的数据。