Notice
Recent Posts
Recent Comments
Link
투케이2K
123. (TWOK/LOGIC) [android] 안드로이드 UDP 소켓 통신 수행 시 응답 데이터 불필요 Byte 값 제거 및 String 반환 - Byte To String 본문
투케이2K 로직정리
123. (TWOK/LOGIC) [android] 안드로이드 UDP 소켓 통신 수행 시 응답 데이터 불필요 Byte 값 제거 및 String 반환 - Byte To String
투케이2K 2024. 11. 18. 20:20[로직 정리]
정리 로직 : Android / 안드로이드
상태 : [android] 안드로이드 UDP 소켓 통신 수행 시 응답 데이터 불필요 Byte 값 제거 및 String 반환 - Byte To String
[설 명]
// --------------------------------------------------------------------------------------
[사전) 설정 및 정보 확인 사항]
// --------------------------------------------------------------------------------------
- 안드로이드 특정 프로젝트 생성 및 UDP 소켓 통신을 사용하기 위한 필요 권한 설정 (위치, 인터넷, 와이파이)
- UDP 소켓 통신을 수행하기 위한 클라이언트 모듈 클래스 생성 필요
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[로직 설명]
// --------------------------------------------------------------------------------------
1. 애플리케이션 수행 및 UDP 소켓 통신을 동작 하기 위한 액티비티 화면 진입
2. UDP 소켓 통신 화면에서 와이파이 기능 활성 상태 및 소켓 통신을 수행하기 위한 특정 WIFI 에 연결된 상태 체크
>> 와이파이가 비활성 상태인 경우나 특정 WIFI 에 연결 된 상태가 아닌 경우 : 해당 기능을 사용하기 위해서는 특정 WIFI 에 연결해 주세요. 알림 팝업창 표시
3. UDP 소켓 통신을 수행하기 위한 APP 상태가 모두 정상인 경우 DatagramSocket 데이터그램 소켓 생성 수행 실시
4. 소켓 생성 완료 시 서버 소켓이 활성 된 IP 주소와 PORT 를 사용해 전송 데이터 byte 변환 후 DatagramPacket 패킷 생성 수행
5. DatagramSocket send 를 사용해 DatagramPacket 데이터 전송 수행 및 응답 데이터 수신 대기 수행
>> 여유 있게 응답 데이터를 받을 수 있는 바이트 배열 생성 : byte[] responseByte = new byte[2048];
>> 응답 데이터를 받을 수 있는 DatagramPacket 생성 및 DatagramSocket receive 응답 데이터 수신 대기 처리
6. DatagramPacket 응답 데이터가 확인 되면 responseByte 응답 바이트 배열 값을 역순으로 for 문을 돌면서 0 값이 아닌 것을 찾을때까지 루프 수행
7. 0 값이 아닌 것을 찾으면 endIdx 변수에 해당 인덱스 번지 저장 후 새로운 바이트 배열 생성 (새로운 바이트 배열 크기는 endIdx + 1 값으로 지정)
8. System.arraycopy 를 사용해 실제 데이터 사용가능한 endIdx 까지 데이터 복사 수행
9. 복사된 byte 배열값을 new String UTF-8 방식으로 문자열로 변환 수행
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[안드로이드 : C_Udp_Client_Socket_Module : UDP 클라이언트 소켓 모듈]
https://blog.naver.com/kkh0977/223662106208
[안드로이드 : C_Udp_Server_Single_Socket_Module : UDP 서버 소켓 모듈]
https://blog.naver.com/kkh0977/223662101423
// --------------------------------------------------------------------------------------
반응형
'투케이2K 로직정리' 카테고리의 다른 글
Comments