Skip to content

Commit b6bd00f

Browse files
author
Deng
committed
update for readToData and readToLength
1 parent 055cfe6 commit b6bd00f

25 files changed

Lines changed: 1923 additions & 1395 deletions

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/app.iml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@
101101
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-support" />
102102
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
103103
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
104+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
104105
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
105106
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
106107
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/restart-dex" />

app/src/main/java/com/vilyever/androidsocketclient/App.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import android.app.Application;
44

5+
import com.vilyever.logger.Logger;
6+
import com.vilyever.logger.LoggerDisplay;
7+
58
/**
69
* App
710
* AndroidSocketClient <com.vilyever.androidsocketclient>
@@ -27,7 +30,8 @@ public class App extends Application {
2730
public void onCreate() {
2831
super.onCreate();
2932

30-
// LoggerDisplay.initialize(this);
33+
LoggerDisplay.initialize(this);
34+
LoggerDisplay.setDisplayLogTag(Logger.DefaultTag);
3135
}
3236

3337
/* Delegates */
Lines changed: 26 additions & 260 deletions
Original file line numberDiff line numberDiff line change
@@ -1,288 +1,54 @@
11
package com.vilyever.androidsocketclient;
22

3-
import android.os.AsyncTask;
43
import android.os.Bundle;
5-
import android.support.annotation.NonNull;
64
import android.support.v7.app.AppCompatActivity;
5+
import android.util.Log;
76
import android.widget.ImageView;
87

9-
import com.vilyever.jsonmodel.JsonModel;
10-
import com.vilyever.logger.Logger;
11-
import com.vilyever.socketclient.SocketClient;
12-
import com.vilyever.socketclient.helper.SocketClientAddress;
13-
import com.vilyever.socketclient.helper.SocketClientDelegate;
14-
import com.vilyever.socketclient.helper.SocketClientReceiveDelegate;
15-
import com.vilyever.socketclient.helper.SocketClientSendingDelegate;
16-
import com.vilyever.socketclient.helper.SocketPacket;
17-
import com.vilyever.socketclient.helper.SocketResponsePacket;
18-
import com.vilyever.socketclient.server.SocketServer;
19-
import com.vilyever.socketclient.server.SocketServerClient;
20-
import com.vilyever.socketclient.server.SocketServerDelegate;
21-
import com.vilyever.socketclient.util.IPUtil;
22-
23-
import java.io.UnsupportedEncodingException;
24-
import java.util.ArrayList;
8+
import java.nio.ByteBuffer;
259

2610
public class MainActivity extends AppCompatActivity {
2711
final MainActivity self = this;
2812

2913
private ImageView imageView;
3014
protected ImageView getImageView() { if (this.imageView == null) { this.imageView = (ImageView) findViewById(R.id.imageView); } return this.imageView; }
3115

32-
private SocketServer socketServer;
33-
protected SocketServer getSocketServer() {
34-
if (this.socketServer == null) {
35-
this.socketServer = new SocketServer();
36-
37-
this.socketServer.getHeartBeatHelper().setHeartBeatInterval(1000 * 30);
38-
this.socketServer.getHeartBeatHelper().setRemoteNoReplyAliveTimeout(1000 * 60);
39-
this.socketServer.getHeartBeatHelper().setSendString("$HB$");
40-
this.socketServer.getHeartBeatHelper().setReceiveString("$HB$");
41-
42-
// this.socketServer.getSocketPacketHelper().setSendHeaderData(new byte[]{0x03,0x02});
43-
// this.socketServer.getSocketPacketHelper().setSendTrailerData(new byte[]{0x01,0x03});
44-
// this.socketServer.getSocketPacketHelper().setReceiveHeaderData(new byte[]{0x03,0x02});
45-
// this.socketServer.getSocketPacketHelper().setReceiveTrailerData(new byte[]{0x01,0x03});
46-
this.socketServer.getSocketPacketHelper().setSendHeaderString("_abcd_1f9jsld;af");
47-
this.socketServer.getSocketPacketHelper().setSendTrailerString("jrjgofnosd9[;[];3289-sjf");
48-
this.socketServer.getSocketPacketHelper().setReceiveHeaderString("_abcd_1f9jsld;af");
49-
this.socketServer.getSocketPacketHelper().setReceiveTrailerString("jrjgofnosd9[;[];3289-sjf");
50-
51-
this.socketServer.registerSocketServerDelegate(new SocketServerDelegate() {
52-
@Override
53-
public void onServerBeginListen(SocketServer socketServer, int port) {
54-
Logger.log("SocketServer: begin listen " + port);
55-
}
56-
57-
@Override
58-
public void onServerStopListen(SocketServer socketServer, int port) {
59-
Logger.log("SocketServer: stop listen " + port);
60-
}
61-
62-
@Override
63-
public void onClientConnected(SocketServer socketServer, SocketServerClient socketServerClient) {
64-
Logger.log("SocketServer: onClientConnected");
65-
66-
self.setServerListeningSocketServerClient(socketServerClient);
67-
}
68-
69-
@Override
70-
public void onClientDisconnected(SocketServer socketServer, SocketServerClient socketServerClient) {
71-
Logger.log("SocketServer: onClientDisconnected");
72-
self.setServerListeningSocketServerClient(null);
73-
}
74-
});
75-
}
76-
return this.socketServer;
77-
}
78-
79-
private SocketClient localSocketClient;
80-
protected SocketClient getLocalSocketClient() {
81-
if (this.localSocketClient == null) {
82-
this.localSocketClient = new SocketClient(new SocketClientAddress(IPUtil.getIPAddress(true), getSocketServer().getPort()));
83-
84-
this.localSocketClient.getHeartBeatHelper().setHeartBeatInterval(1000 * 30);
85-
this.localSocketClient.getHeartBeatHelper().setRemoteNoReplyAliveTimeout(1000 * 60);
86-
this.localSocketClient.getHeartBeatHelper().setSendString("$HB$");
87-
this.localSocketClient.getHeartBeatHelper().setReceiveString("$HB$");
88-
89-
// this.localSocketClient.getSocketPacketHelper().setSendHeaderData(new byte[]{0x03,0x02});
90-
// this.localSocketClient.getSocketPacketHelper().setSendTrailerData(new byte[]{0x01,0x03});
91-
// this.localSocketClient.getSocketPacketHelper().setReceiveHeaderData(new byte[]{0x03,0x02});
92-
// this.localSocketClient.getSocketPacketHelper().setReceiveTrailerData(new byte[]{0x01,0x03});
93-
94-
this.localSocketClient.getSocketPacketHelper().setSendHeaderString("_abcd_1f9jsld;af");
95-
this.localSocketClient.getSocketPacketHelper().setSendTrailerString("jrjgofnosd9[;[];3289-sjf");
96-
this.localSocketClient.getSocketPacketHelper().setReceiveHeaderString("_abcd_1f9jsld;af");
97-
this.localSocketClient.getSocketPacketHelper().setReceiveTrailerString("jrjgofnosd9[;[];3289-sjf");
98-
99-
this.localSocketClient.getSocketPacketHelper().setSegmentLength(4 * 1024);
100-
101-
this.localSocketClient.registerSocketClientDelegate(new SocketClientDelegate() {
102-
@Override
103-
public void onConnected(SocketClient client) {
104-
Logger.log("Local onConnected");
105-
getLocalSocketClient().sendString("sy hi!");
106-
// getLocalSocketClient().sendString("sy hi! you are impossible warriors");
107-
// getLocalSocketClient().sendString("sy hi! you are impossible warriors, i may really make a good decision to support u.");
108-
// getLocalSocketClient().sendString("sy hi! you are impossible warriors, i may really make a good decision to support u.");
109-
}
110-
111-
@Override
112-
public void onDisconnected(SocketClient client) {
113-
Logger.log("Local onDisconnected");
114-
}
115-
116-
@Override
117-
public void onResponse(SocketClient client, @NonNull SocketResponsePacket responsePacket) {
118-
}
119-
});
120-
this.localSocketClient.registerSocketClientSendingDelegate(new SocketClientSendingDelegate() {
121-
122-
@Override
123-
public void onSendPacketBegin(SocketClient client, SocketPacket packet) {
124-
// Logger.log("Local onSendPacketBegin " + packet.getID());
125-
}
126-
127-
@Override
128-
public void onSendPacketCancel(SocketClient client, SocketPacket packet) {
129-
// Logger.log("Local onSendPacketCancel " + packet.getID());
130-
}
131-
132-
@Override
133-
public void onSendPacketEnd(SocketClient client, SocketPacket packet) {
134-
// Logger.log("Local onSendPacketEnd " + packet.getID());
135-
}
136-
137-
@Override
138-
public void onSendPacketProgress(SocketClient client, SocketPacket packet, float progress) {
139-
// Logger.log("Local onSendPacketProgress " + packet.getID() + " progress : " + progress);
140-
}
141-
});
142-
this.localSocketClient.registerSocketClientReceiveDelegate(new SocketClientReceiveDelegate() {
143-
@Override
144-
public void onResponse(SocketClient client, @NonNull SocketResponsePacket responsePacket) {
145-
Logger.log("Local onResponse 【" + responsePacket.getMessage() + "】");
146-
}
147-
148-
@Override
149-
public void onHeartBeat(SocketClient socketClient) {
150-
// Logger.log("Local onHeartBeat ");
151-
}
152-
});
153-
}
154-
return this.localSocketClient;
155-
}
156-
157-
private SocketServerClient serverListeningSocketServerClient;
158-
protected MainActivity setServerListeningSocketServerClient(SocketServerClient serverListeningSocketServerClient) {
159-
this.serverListeningSocketServerClient = serverListeningSocketServerClient;
160-
if (serverListeningSocketServerClient == null) {
161-
return this;
16+
private TestServer testServer;
17+
protected TestServer getTestServer() {
18+
if (this.testServer == null) {
19+
this.testServer = new TestServer();
16220
}
163-
164-
this.serverListeningSocketServerClient.registerSocketClientDelegate(new SocketClientDelegate() {
165-
@Override
166-
public void onConnected(SocketClient client) {
167-
// Logger.log("Server onConnected");
168-
}
169-
170-
@Override
171-
public void onDisconnected(SocketClient client) {
172-
// Logger.log("Server onDisconnected");
173-
}
174-
175-
@Override
176-
public void onResponse(SocketClient client, @NonNull SocketResponsePacket responsePacket) {
177-
}
178-
});
179-
this.serverListeningSocketServerClient.registerSocketClientSendingDelegate(new SocketClientSendingDelegate() {
180-
181-
@Override
182-
public void onSendPacketBegin(SocketClient client, SocketPacket packet) {
183-
// Logger.log("Server onSendPacketBegin " + packet.getID());
184-
}
185-
186-
@Override
187-
public void onSendPacketCancel(SocketClient client, SocketPacket packet) {
188-
// Logger.log("Server onSendPacketCancel " + packet.getID());
189-
}
190-
191-
@Override
192-
public void onSendPacketEnd(SocketClient client, SocketPacket packet) {
193-
// Logger.log("Server onSendPacketEnd " + packet.getID());
194-
195-
}
196-
197-
@Override
198-
public void onSendPacketProgress(SocketClient client, SocketPacket packet, float progress) {
199-
// Logger.log("Server onSendPacketProgress " + packet.getID() + " progress : " + progress);
200-
}
201-
});
202-
this.serverListeningSocketServerClient.registerSocketClientReceiveDelegate(new SocketClientReceiveDelegate() {
203-
@Override
204-
public void onResponse(SocketClient client, @NonNull SocketResponsePacket responsePacket) {
205-
if (responsePacket.getMessage().length() < 100) {
206-
Logger.log("Server onResponse 【" + responsePacket.getMessage() + "】");
207-
}
208-
else {
209-
Logger.log("Server onResponse 【" + responsePacket.getMessage().substring(0, 100) + "】");
210-
Logger.log("Server onResponse length 【" + responsePacket.getData().length + "】");
211-
}
212-
}
213-
214-
@Override
215-
public void onHeartBeat(SocketClient socketClient) {
216-
Logger.log("Server onHeartBeat ");
217-
}
218-
});
219-
return this;
220-
}
221-
protected SocketClient getServerListeningSocketServerClient() {
222-
return this.serverListeningSocketServerClient;
21+
return this.testServer;
22322
}
22423

22524
@Override
22625
protected void onCreate(Bundle savedInstanceState) {
22726
super.onCreate(savedInstanceState);
22827
setContentView(R.layout.activity_main);
22928

230-
getSocketServer().beginListenFromPort(80);
29+
Log.d("logger", "ts " + bytesToHex(encodeUINT16(18005)));
30+
Log.d("logger", "ts " + bytesToHex(encodeUINT16(18005)));
23131

232-
getLocalSocketClient().connect();
233-
234-
boolean shouldSend = true;
235-
if (shouldSend) {
236-
getWindow().getDecorView().postDelayed(new Runnable() {
237-
@Override
238-
public void run() {
239-
getLocalSocketClient().sendString("你好");
240-
try {
241-
getLocalSocketClient().sendData("HELLO".getBytes("UTF-8"));
242-
}
243-
catch (UnsupportedEncodingException e) {
244-
e.printStackTrace();
245-
}
246-
247-
getLocalSocketClient().sendString("你也好");
248-
249-
new AsyncTask<Void, Void, Void>() {
250-
@Override
251-
protected Void doInBackground(Void... params) {
252-
self.getLocalSocketClient().sendString("ABC");
253-
254-
TestModel testModel = new TestModel();
255-
testModel.subModels = new ArrayList<TestSubModel>();
256-
for (int i = 0; i < 10000; i++) {
257-
TestSubModel subModel = new TestSubModel();
258-
subModel.title = "title " + i;
259-
testModel.subModels.add(subModel);
260-
}
261-
262-
SocketPacket packet = self.getLocalSocketClient().sendString(testModel.toJson().toString());
263-
Logger.log("packet size " + packet.getMessage().getBytes().length);
264-
265-
self.getLocalSocketClient().sendString("一二三");
266-
267-
return null;
268-
}
269-
270-
@Override
271-
protected void onPostExecute(Void aVoid) {
272-
super.onPostExecute(aVoid);
273-
274-
}
275-
}.execute();
276-
}
277-
}, 5 * 1000);
278-
}
32+
getTestServer().beginListen();
27933
}
28034

281-
class TestModel extends JsonModel {
282-
ArrayList<TestSubModel> subModels;
35+
public byte[] encodeUINT16(int param) {
36+
byte[] bytes = ByteBuffer.allocate(4).putInt(param ^ 0xADAD).array();
37+
38+
byte[] encodedBytes = new byte[2];
39+
encodedBytes[0] = bytes[3];
40+
encodedBytes[1] = bytes[2];
41+
return encodedBytes;
28342
}
28443

285-
class TestSubModel extends JsonModel {
286-
String title;
44+
final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
45+
public static String bytesToHex(byte[] bytes) {
46+
char[] hexChars = new char[bytes.length * 2];
47+
for ( int j = 0; j < bytes.length; j++ ) {
48+
int v = bytes[j] & 0xFF;
49+
hexChars[j * 2] = hexArray[v >>> 4];
50+
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
51+
}
52+
return new String(hexChars);
28753
}
28854
}

0 commit comments

Comments
 (0)