Skip to content

Commit cef1556

Browse files
author
Deng
committed
trans String with byte[] in receive thread
1 parent 3be1407 commit cef1556

2 files changed

Lines changed: 17 additions & 31 deletions

File tree

socketclient/src/main/java/com/vilyever/socketclient/SocketClient.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,14 @@ public void run() {
806806
break;
807807
}
808808

809-
SocketResponsePacket responsePacket = new SocketResponsePacket(result, self.getCharsetName());
809+
String resultMessage = null;
810+
try {
811+
resultMessage = new String(result, Charset.forName(self.getCharsetName()));
812+
}
813+
catch (Exception e) {
814+
e.printStackTrace();
815+
}
816+
SocketResponsePacket responsePacket = new SocketResponsePacket(result, resultMessage);
810817

811818
Message message = Message.obtain();
812819
message.what = UIHandler.MessageType.ReceiveResponse.what();

socketclient/src/main/java/com/vilyever/socketclient/SocketResponsePacket.java

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package com.vilyever.socketclient;
22

3-
import com.vilyever.socketclient.util.CharsetNames;
4-
5-
import java.nio.charset.Charset;
63
import java.util.Arrays;
74

85
/**
@@ -16,36 +13,18 @@ public class SocketResponsePacket {
1613

1714

1815
/* Constructors */
19-
public SocketResponsePacket(byte[] data, String defaultCharsetName) {
16+
public SocketResponsePacket(byte[] data, String message) {
2017
this.data = data;
21-
this.defaultCharsetName = defaultCharsetName;
18+
this.message = message;
2219
}
2320

2421

2522
/* Public Methods */
26-
public String getMessage() {
27-
return getMessage(getDefaultCharsetName());
28-
}
29-
30-
public String getMessage(String charsetName) {
31-
return getMessage(Charset.forName(charsetName));
32-
}
33-
34-
public String getMessage(Charset charset) {
35-
return new String(getData(), charset);
36-
}
37-
3823
public boolean isMatch(String message) {
39-
return isMatch(message, CharsetNames.UTF_8);
40-
}
41-
42-
public boolean isMatch(String message, String charsetName) {
43-
return isMatch(message, Charset.forName(charsetName));
44-
}
45-
46-
public boolean isMatch(String message, Charset charset) {
47-
byte[] bytes = message.getBytes(charset);
48-
return isMatch(bytes);
24+
if (getMessage() == null) {
25+
return false;
26+
}
27+
return getMessage().equals(message);
4928
}
5029

5130
public boolean isMatch(byte[] bytes) {
@@ -61,9 +40,9 @@ public byte[] getData() {
6140
return this.data;
6241
}
6342

64-
private final String defaultCharsetName;
65-
public String getDefaultCharsetName() {
66-
return this.defaultCharsetName;
43+
private final String message;
44+
public String getMessage() {
45+
return this.message;
6746
}
6847

6948

0 commit comments

Comments
 (0)