NOTE: This is for CHAT protocol.
I just learned that the boxes I'm getting (which look like the outline of a square not filled in) represents a symbol that my computer can't interpret. What I don't understand is...
Why this doesn't show the boxes...
while(true) {
newWindow.addText((char)in.read()); //which reads one char at a time and, one at a time, adds it to my display text
}
Yet this does...
/* run method in receive thread
* reads a byte at a time, if byte isn't null adds to byte array,
* then make string out of that byte array once it gets the values 13 and 10 (chars \r \n)
*/
public void run() {
byte[] bytesIn;
byte newByte;
int i;
while (true) {
bytesIn = new byte[1000];
i = 0;
try {
do {
for(int j = 0; j < 2; j++) { // I'll be checking two bytes, 13 and 10
newByte = (byte)in.read(); // so i have to read two at a time
if (newByte != 0x00) { // my attempt at fixing the box problem, does it with and without this piece though...
bytesIn[i] = newByte;
i++;
}
}
}
while(bytesIn[i-2] != 0x0d && bytesIn[i-1] != 0x0a); //checking for \r and \n, if it gets them it includes them then stops
String message = new String(bytesIn);
newWindow.addText(message);
}
catch (IOException e) {
newWindow.addText(e.toString());
}
}
}
Is there a better way to do this? Newby made a good suggestion on the newline character thread,
to do the equivalent of this c++ piece in java:
string[] IncomingData = IncomingInfo.Split("\r\n".ToCharArray());
I know it shouldn't be hard to convert c++ to java lol cause they are both OOP but the problem is
that IO in java is kinda a bitch...
It seems that IncomingInfo is a character reader that reads characters, remembers them, and once it comes to \r\n it turns the characters into a character array and then he makes that into a string. But, what should I use in Java for a character reader that *remembers the characters* so it can turn them into a character array later when I want it to...
EDIT: Oh, I guess IncomingInfo is a String that you keep adding a char array to and then refresh the char array... I tried that in Java but it still gave me boxes !!
What's up with all these damn boxes?!