바이너리 통신이 있습니다. 저는 초보자 인 java에서 java.sun.com 튜토리얼에서 배울 수있는 평범한 텍스트를 사용합니다. 따라서 어떤 이점이 바이너리 소켓을 가지고 있는지 알고 싶습니다. 왜 내가 그것을 사용해야합니까? 그리고 바이너리 통신에 대해 어떤 자원을 제안 할 수 있습니까?바이너리와 비 바이너리 소켓킹 Java
답변
극단적 인 성능과 같이 특정 이유가있는 경우에만 소켓을 통해 이진 데이터로 직접 작업 할 수 있습니다. 그러한 이유가 있다면 그것을 알고, 바이너리 데이터를 소켓을 통해 직접 사용한다고해서 고성능이 보장되는 것은 아닙니다.
이 낮은 수준에서 노동 집약적이고 오류가 발생하기 쉬운 직장에서 프로그래머를 보호하면서 네트워크 통신을 용이하게하기 위해 많은 자바에서 제공하는 추상화와 라이브러리가 있습니다
은 몇 가지 예입니다.
소켓을 통해 바이너리 데이터를 보내는 것이 분명히 대역폭 사용 측면에서 더 효율적일 것입니다. 그러나 소켓을 통해 데이터를 마샬링 및 비 정렬 화해야하는 복잡성도 증가합니다. 성능이 중요하지 않은 경우 텍스트 데이터 (XML, JSON 등)를 보내는 것이 많은 상황에서보다 직관적이고 쉽게 개발 될 수 있습니다.
하나의 Java VM에서 다른 Java VM으로 소켓 연결을 통해 Objects
을 다른 바이너리로 쉽게 전달할 수 있도록 해주는 Object stream
을 참조하십시오 (필요한 경우 네트워크를 통해).
자바 썬 튜토리얼은 좋은 자료입니다. Basic I/O section을 참조하십시오.
다른 답변에서 언급했듯이 절대적으로 필요한 경우가 아니면 원시 소켓 통신을 피하십시오. 필자는 필요에 따라 다른 언어를 사용하는 클라이언트와 쉽게 통신 할 수 있고 디버깅하기가 훨씬 쉬워 짐으로서 XML 대신 객체 대신 통신 데이터 형식을 제안합니다. XStream은 최소한의 지원 코드로 객체 < -> xml 변환을 용이하게하는 훌륭한 라이브러리입니다.
제안 해 주셔서 감사합니다 !! –
- 1. java http 클라이언트의 비 - 바이너리 데이터 압축하기
- 2. Java : 바이너리 대신 XML에서 직렬화/역 직렬화
- 3. WCF System.ServiceModel.Channel.Message : 바이너리 메시지 내용 (비 XML)?
- 4. 바이너리 문자열 용 Java 정규식
- 5. Java 바이너리 레코드를 문자열로 읽어들입니다.
- 6. 부스트 :: 바이너리 <>
- 7. 비 Java 소스를 Java 소스로 변환하기위한 도구
- 8. Cygwin GCC 크로스 컴파일 바이너리?
- 9. 패키지 구조의 비 Java 파일
- 10. Java 소켓 비 블로킹 읽기
- 11. Java 바이너리 트리. InOrder traversal 인쇄
- 12. 좋은 바이너리 데이터 압축 Java 라이브러리는 무엇입니까?
- 13. Java - 바이너리 파일의 일부 덮어 쓰기
- 14. Java Persistance API는 바이너리 데이터를 어떻게 처리합니까?
- 15. SQLite에 MySQL의 바이너리와 직접적으로 동일한 기능이 있습니까?
- 16. 바이너리 전압과 엔디안의 관계
- 17. 바이너리 포맷터를 사용하여 비 직렬화 한 후 Exception.TargetSite가 null입니다.
- 18. Outlook 이메일 메시지에 대해 비 바이너리 형식이 있습니까?
- 19. 윈도우 아이폰 바이너리 파일을
- 20. 코드 승격 : 빌드 또는 바이너리?
- 21. 비 기본 Java 객체의 크기를 인쇄하는 Java 프로그램을 작성하십시오.
- 22. Eclipse에서 비 Java 확장 파일을 사용하여 Java 코드 컴파일
- 23. 비 Java 클라이언트에서 JMX 에이전트에 액세스
- 24. Java 애플릿/Firefox 비 호환성 문제
- 25. Java 비 블로킹 소켓 플러시 작업
- 26. 비 정적 메소드 java mock을 대체하십시오.
- 27. Java Web Start를 사용하는 비 클래스 파일
- 28. 바이너리 검색 대 바이너리 검색 트리
- 29. 바이너리 라이브러리
- 30. 바이너리 문제 =
디버그하기 쉽다는 것은 말할 것도없이. 당신이 패킷을 스니핑 할 수 있고 내용이 사람이 읽을 수 있기 때문입니다. – Matt
그건 물론 사실입니다. –