服务器端:delphi使用Indy的TCPServer编写客 户 端:Android的Socket。——都是阻塞方式——目前碰到一个奇怪的问题,android向服务器发送数据,有时候是对的,但是大多数时候数据前面加了若干个"#FF",喵了个咪的,这些#FF那来的,实在纳闷!!!例如:发送数据“@AAA#”,服务器收到的却是“ @AAA#”,用16进制查看,前面空的字符全是#FF。下面归纳一下测试的现象:1. 模拟器测试没有这个问题,非常正常,真机测试就会出现(2台真机,一个2.3系统,一个4.0系统,都出现这个问题);2. 发送用“BufferedWriter”和“PrintWriter”都测试了,结果一样,无论哪个,发送的是String还是char[]都这样;3. 服务器端调试发现,前面的#FF的数量是变化的,第一次比较少,然后递增,到一定数量就会发送成功一次,然后又开始反复这种现象。泪奔啊~~~~~~求帮助!!!!!
服务器端:delphi使用Indy的TCPServer编写客 户 端:Android的Socket。——都是阻塞方式——目前碰到一个奇怪的问题,android向服务器发送数据,有时候是对的,但是大多数时候数据前面加了若干个"#FF",喵了个咪的,这些#FF那来的,实在纳闷!!!例如:发送数据“@AAA#”,服务器收到的却是“ @AAA#”,用16进制查看,前面空的字符全是#FF。下面归纳一下测试的现象:1. 模拟器测试没有这个问题,非常正常,真机测试就会出现(2台真机,一个2.3系统,一个4.0系统,都出现这个问题);2. 发送用“BufferedWriter”和“PrintWriter”都测试了,结果一样,无论哪个,发送的是String还是char[]都这样;3. 服务器端调试发现,前面的#FF的数量是变化的,第一次比较少,然后递增,到一定数量就会发送成功一次,然后又开始反复这种现象。泪奔啊~~~~~~求帮助!!!!!
呃,补上代码:private Socket TCPSocket = null;
private BufferedReader TCPIn = null;InetAddress ia = InetAddress.getByName(sHost);
TCPSocket.connect(new InetSocketAddress(ia, iPort), 3000);
TCPOut = new BufferedWriter(new OutputStreamWriter(TCPSocket.getOutputStream()));TCPOut.write("...");
TCPOut.flush();
for Example:
OutputStream os = conn.getOutputStream();
os.write(..(byte数组)..);
os.flush();
to(sada09):使用OutputStream发送byte[]还是这样,晕啊,难道是编码的问题,也不对啊,模拟器就是好的,奇怪了
DataOutputStream mOutputStream = new DataOutputStream(mSocket.getOutputStream());
String sendString = "test";
byte[] sendArray = sendString.getBytes("UTF-8");
mOutputStream.write(sendArray);
mOutputStream.flush();-------read------
byte[] buffer = new byte[n];
DataInputStream in = new DataInputStream(mSocket.getInputStream());
count = in.read(buffer)