클라이언트 서버 응용 프로그램을 작성하고 있지만 서버 측에서 전송할 때 클라이언트 측에서 동일한 바이트를받지 못합니다. 서버 쪽에서 나는 .write(bytes[])
메서드를 사용했습니다. 클라이언트 측에서는 .readFully(byte[])
메소드를 사용했습니다. 의견이 있으십니까?DataOutputStream, 일부 비트가 손실되지 않습니다
보낸 된 코드 :
System.out.println("Server got connection from " + connectionFromClient.getPort());
in = connectionFromClient.getInputStream();
OutputStream out = connectionFromClient.getOutputStream();
DataOutputStream dataOut = new DataOutputStream(out);
LicenseList licenses = new LicenseList();
String ValidIDs = licenses.getAllIDs();
System.out.println(ValidIDs);
Encryption enc = new Encryption();
//byte[] dd = enc.encrypt(ValidIDs);
byte[] dd = enc.encrypt(ValidIDs);
String tobesent = new String(dd);
//byte[] rsult = enc.decrypt(dd);
//String tt = String(rsult);
System.out.println("The sent data**********************************************");
System.out.println(dd);
String temp = new String(dd);
System.out.println(temp);
System.out.println("*************************************************************");
//BufferedWriter bf = new BufferedWriter(OutputStreamWriter(out));
dataOut.write(ValidIDs.getBytes());
dataOut.flush();
System.out.println("********Testing**************");
System.out.println("Here are the ids:::");
System.out.println(licenses.getAllIDs());
System.out.println("**********************");
클라이언트 사이드 :
Socket connectionToServer = new Socket("127.0.0.1", 7050);
InputStream in = connectionToServer.getInputStream();
DataInputStream dis = new DataInputStream(in);
int available = dis.available();
byte[] data = new byte[available];
// dis.readFully(data);
dis.read(data);
System.out.println("The received Data*****************************************");
System.out.println(available);
System.out.println(data);
System.out.println("***********************************************************");
보낸 몇 바이트의 예와 대신받은 내용을 제공 할 수 있습니까? –
글을 쓰고 읽는 코드를 게시 할 수 있습니까? – Zaki
아래는 클래스 프로젝트를위한 것입니다. 그런 종류의 일을 위해'숙제'태그를 미래에 사용하십시오. 답변을 올바르게 타겟팅하여 사람들이 더 잘 도울 수있게 도와줍니다. –