개발/JAVA
[ TCP ] TCP Client 만들기
쩨이엠
2021. 1. 6. 13:13
728x90
반응형
TCP Server를 만들었으니 테스트 용으로 client를 만들어보기로 한다
[ TCP ] TCP Server 만들기
TCP 프로토콜 통신을 위해 TCP Server를 만들어보기로 한다 Client에서 통신을 보내면 Server에서 받도록 프로젝트를 만들어보기로 한다 TCP Client --> TCP Server 개발환경 Spring Boot 2.3.4.RELEASE Gradle 7...
gogo-jjm.tistory.com
매우 간단해서 Test용으로 대체한다
TCP Server와 따로 Springboottest로 하기 위해서는 기존과 다른 port를 사용해야한다
test 패키지 안에 application.yml을 따로 만들어준다
application.yml
tcp:
server:
port: 8091
Socket Test
Socket socket = new Socket("localhost", 8092);
OutputStream output = socket.getOutputStream();
byte[] data = {0x02, 0x10, 0x11, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0xCF, (byte) 0xEC, 0x03};
output.write(data);
socket.close();
기존의 log가 찍히는 것을 확인할 수 있다
application.yml을 바꾸지 않고 채널로 바로 보내기 위해서는 밑과 같이 MessageChannel을 만들어 주면 해결된다
가끔 밑의 사진 처럼 MessageChannel을 못찾는다고 할 때가 있는데 그 땐 Package가 MessageChannel이 있는 곳에 있는지 확인해본다
내 경우엔 com.test.iot!
@Autowired
private MessageChannel inboundChannel;
@Test
void test_send_sensor_status() {
MessagingTemplate messagingTemplate = new MessagingTemplate(this.inboundChannel);
byte[] bytes = {0x02, 0x10, 0x11, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0xCF, (byte) 0xEC, 0x03};
Message<byte[]> message = MessageBuilder.withPayload(bytes).build();
Message<?> receive = messagingTemplate.sendAndReceive(message);
byte[] response = new byte[0];
Assertions.assertTrue(Arrays.equals((byte[]) receive.getPayload(), response));
}
728x90
반응형