我正在编写客户端服务器应用程序,但从服务器端发送时,我在客户端没有收到相同的字节。 在服务器端我使用.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("***********************************************************");
你能举一些你发送的字节和接收到的字节吗? – 2010-05-09 12:18:38
你能发表写作和阅读的代码吗? – Zaki 2010-05-09 12:19:35
你在下面说过,这是一个班级项目。请在将来使用'homework'标签来处理这类事情。它可以帮助人们通过正确定位他们的答案来更好地帮助你。 – 2010-05-09 12:45:55