mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-05-20 05:27:48 +00:00
test[tcp]: 优化Tcp服务器的测试用例
This commit is contained in:
@@ -14,9 +14,11 @@
|
||||
package com.zfoo.net.core.tcp.client;
|
||||
|
||||
import com.zfoo.net.dispatcher.model.anno.PacketReceiver;
|
||||
import com.zfoo.net.packet.SM_Int;
|
||||
import com.zfoo.net.packet.tcp.TcpHelloResponse;
|
||||
import com.zfoo.net.session.model.Session;
|
||||
import com.zfoo.protocol.util.JsonUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
@@ -27,10 +29,11 @@ import org.springframework.stereotype.Component;
|
||||
public class TcpClientPacketController {
|
||||
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(TcpClientPacketController.class);
|
||||
|
||||
@PacketReceiver
|
||||
public void atSM_Int(Session session, SM_Int sm) {
|
||||
System.out.println("receive packet from server:");
|
||||
System.out.println(JsonUtils.object2String(sm));
|
||||
public void atTcpHelloResponse(Session session, TcpHelloResponse response) {
|
||||
logger.info("tcp client receive [packet:{}] from server", JsonUtils.object2String(response));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,7 +15,11 @@ package com.zfoo.net.core.tcp.client;
|
||||
|
||||
import com.zfoo.net.NetContext;
|
||||
import com.zfoo.net.core.tcp.TcpClient;
|
||||
import com.zfoo.net.packet.*;
|
||||
import com.zfoo.net.packet.CM_AsyncMess0;
|
||||
import com.zfoo.net.packet.CM_SyncMess;
|
||||
import com.zfoo.net.packet.SM_AsyncMess0;
|
||||
import com.zfoo.net.packet.SM_SyncMess;
|
||||
import com.zfoo.net.packet.tcp.TcpHelloRequest;
|
||||
import com.zfoo.net.session.SessionUtils;
|
||||
import com.zfoo.protocol.exception.ExceptionUtils;
|
||||
import com.zfoo.protocol.util.FileUtils;
|
||||
@@ -48,22 +52,14 @@ public class TcpClientTest {
|
||||
var client = new TcpClient(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHostConfig().getAddressMap().get("server0")));
|
||||
var session = client.start();
|
||||
|
||||
new Thread(() -> {
|
||||
CM_Int cm = new CM_Int();
|
||||
cm.setFlag(false);
|
||||
cm.setA(Byte.MIN_VALUE);
|
||||
cm.setB(Short.MIN_VALUE);
|
||||
cm.setC(Integer.MIN_VALUE);
|
||||
cm.setD(Long.MIN_VALUE);
|
||||
cm.setE('e');
|
||||
cm.setF("Hello,this is the client!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
||||
var request = new TcpHelloRequest();
|
||||
request.setMessage("Hello, this is the tcp client!");
|
||||
|
||||
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
ThreadUtils.sleep(2000);
|
||||
NetContext.getDispatcher().send(session, cm);
|
||||
}
|
||||
}).start();
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
ThreadUtils.sleep(2000);
|
||||
NetContext.getDispatcher().send(session, request);
|
||||
}
|
||||
|
||||
ThreadUtils.sleep(Long.MAX_VALUE);
|
||||
}
|
||||
|
||||
@@ -15,10 +15,14 @@ package com.zfoo.net.core.tcp.server;
|
||||
import com.zfoo.net.NetContext;
|
||||
import com.zfoo.net.dispatcher.model.anno.PacketReceiver;
|
||||
import com.zfoo.net.packet.*;
|
||||
import com.zfoo.net.packet.tcp.TcpHelloRequest;
|
||||
import com.zfoo.net.packet.tcp.TcpHelloResponse;
|
||||
import com.zfoo.net.session.model.Session;
|
||||
import com.zfoo.protocol.util.FileUtils;
|
||||
import com.zfoo.protocol.util.JsonUtils;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
@@ -28,21 +32,16 @@ import org.springframework.stereotype.Component;
|
||||
@Component
|
||||
public class TcpServerPacketController {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(TcpServerPacketController.class);
|
||||
|
||||
@PacketReceiver
|
||||
public void atCM_Int(Session session, CM_Int cm) {
|
||||
System.out.println("receive packet from client:");
|
||||
System.out.println(JsonUtils.object2String(cm));
|
||||
public void atTcpHelloRequest(Session session, TcpHelloRequest request) {
|
||||
logger.info("receive [packet:{}] from client", JsonUtils.object2String(request));
|
||||
|
||||
SM_Int sm = new SM_Int();
|
||||
sm.setFlag(false);
|
||||
sm.setA(Byte.MIN_VALUE);
|
||||
sm.setB(Short.MIN_VALUE);
|
||||
sm.setC(Integer.MIN_VALUE);
|
||||
sm.setD(Long.MIN_VALUE);
|
||||
sm.setE('e');
|
||||
sm.setF("Hello,this is the Server!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
||||
var response = new TcpHelloResponse();
|
||||
response.setMessage("Hello, this is the udp server!");
|
||||
|
||||
NetContext.getDispatcher().send(session, sm);
|
||||
NetContext.getDispatcher().send(session, response);
|
||||
}
|
||||
|
||||
@PacketReceiver
|
||||
|
||||
@@ -54,19 +54,19 @@ public class TcpServerTest {
|
||||
public void startServer1() {
|
||||
SessionUtils.printSessionInfo();
|
||||
|
||||
connectServer1();
|
||||
connectServer0();
|
||||
|
||||
var server1 = new TcpServer(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHostConfig().getAddressMap().get("server1")));
|
||||
server1.start();
|
||||
ThreadUtils.sleep(Long.MAX_VALUE);
|
||||
}
|
||||
|
||||
private void connectServer1() {
|
||||
private void connectServer0() {
|
||||
executor.execute(() -> {
|
||||
while (true) {
|
||||
try {
|
||||
var client1 = new TcpClient(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHostConfig().getAddressMap().get("client0")));
|
||||
client1.start();
|
||||
var client0 = new TcpClient(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHostConfig().getAddressMap().get("client0")));
|
||||
client0.start();
|
||||
break;
|
||||
} catch (Exception e) {
|
||||
System.out.println("连接失败,开始重新连接");
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.net.packet.tcp;
|
||||
|
||||
import com.zfoo.protocol.IPacket;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class TcpHelloRequest implements IPacket {
|
||||
|
||||
public static final transient short PROTOCOL_ID = 1300;
|
||||
|
||||
private String message;
|
||||
|
||||
|
||||
@Override
|
||||
public short protocolId() {
|
||||
return PROTOCOL_ID;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.net.packet.tcp;
|
||||
|
||||
import com.zfoo.protocol.IPacket;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class TcpHelloResponse implements IPacket {
|
||||
|
||||
public static final transient short PROTOCOL_ID = 1301;
|
||||
|
||||
private String message;
|
||||
|
||||
|
||||
@Override
|
||||
public short protocolId() {
|
||||
return PROTOCOL_ID;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
}
|
||||
@@ -61,6 +61,9 @@
|
||||
|
||||
<protocol id="1200" location="com.zfoo.net.packet.udp.UdpHelloRequest"/>
|
||||
<protocol id="1201" location="com.zfoo.net.packet.udp.UdpHelloResponse"/>
|
||||
|
||||
<protocol id="1300" location="com.zfoo.net.packet.tcp.TcpHelloRequest"/>
|
||||
<protocol id="1301" location="com.zfoo.net.packet.tcp.TcpHelloResponse"/>
|
||||
</module>
|
||||
|
||||
<module id="4" name="js" minId="2000" maxId="3000" version="1.0.0">
|
||||
|
||||
Reference in New Issue
Block a user