0
0

Здраствуите, вопрос не совсем по теме но может быть есть кто разбирается в Java. У меня есть скрипт написаный на java который принимает данные с устройсмва типа М2М по разным протоколам. Проблема в том что как принять данные в двоичном виде? 

Сам скрипт сервера выглядит так

import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

class Server
extends Thread
{
Socket s;
int num;
String g = "";
String otvet;
String zapis;
String emai;
String dannye;
int countMess = 0;
int endConnection = 0;
static int port = 10002;
static String config = "";

public static void main(String[] paramArrayOfString)
{
try
{
int i = 1;

ServerSocket localServerSocket = new ServerSocket(port);

Scanner localScanner = new Scanner(new File("config_sql.txt"));
while (localScanner.hasNext()) {
config = localScanner.nextLine();
}
localScanner.close();

InetAddress localInetAddress = InetAddress.getLocalHost();
String str = localInetAddress.getHostAddress();
System.out.println("server is started IP:port * " + str + ":" + port);
for (;;)
{
new Server(i, localServerSocket.accept());

i++;
}
}
catch (Exception localException)
{
System.out.println("init error1: " + localException);
}
}

public Server(int paramInt, Socket paramSocket)
{
System.out.println("new connection ---------------------------------------" + paramInt);

this.num = paramInt;
this.s = paramSocket;

setDaemon(true);
setPriority(5);
start();
}


как я понимаю что тут написано как именнно нужно принять данные


public void run()
{
try
{
for (;;)
{
Box localBox = new Box();
Bd localBd = new Bd();

 byte[] arrayOfByte = new byte[10467589];

int i = this.s.getInputStream().read(arrayOfByte);
System.out.println("Recessive bite" + i);
if (i == -1)
{
System.out.println("End connection, socet close");
this.s.close();
return;
}
String str = new String(arrayOfByte, 0, i, "UTF-8");

OutputStream localOutputStream = this.s.getOutputStream();

localBd.config = config;
localBox.stroka = str;
this.otvet = localBox.otvet();

localOutputStream.write(this.otvet.getBytes());
localBd.raschet(str);
}
return;
}
catch (Exception localException)
{
System.out.println("init error2: " + localException + "tttt");
}
}
}

сейчас приходит

1234567890123456789&bin=а тут пошла кракозябра типа ???????????

 


Владимир Мамарин
5 years ago






Еще нет ответов