Different performance in Window 2000 and XP

I write my program in the XP which send the serial data to PC, the data will collect from the analog port every 0.4 s. In XP i can see the received data changing every 0.4 s , but when i connect to a PC with Window 2000 system, I found that the data transmission will stop after few seconds.

anyone know what happen to my program ?

thanks

my code :

int fsrPin;
int fsrPin1;
int fsrPin2;
int fsrPin3;
String a;
String b;
String c;
String total;
void setup(void)
{
Serial.begin(9600);
a=String("$");
b=String("/");
c=String("%");
}

void loop(void)
{
fsrPin=analogRead(0);
fsrPin1=analogRead(1);
fsrPin2=analogRead(2);
fsrPin3=analogRead(3);
total=a+fsrPin+b+fsrPin1+b+fsrPin2+b+fsrPin3+c;
Serial.print(total);

delay(400);
}

  a=String("$");
  b=String("/");
  c=String("%");

Why are you doing this? The variables a, b, and c are already Strings. Just assign them values:

a = "$";
b = "/";
c = "%";

As for why this makes a difference, look at the assignment operator and the copy constructor in the String class.

  total=a+fsrPin+b+fsrPin1+b+fsrPin2+b+fsrPin3+c;
  Serial.print(total);

You are mixing lots of String operator calls and String copy constructor calls here. You would be a lot better off if you simply deleted every String object from your sketch, and used a character array. The sprintf function is your friend.

I found that the data transmission will stop after few seconds.

Does the Arduino quit sending (the TX light quits flashing) or does the PC quit receiving?