안드로이드 tcp ip 통신 예제

이 자습서에서는 TCP 연결을 만듭니다. 서버는 Java로 작성되고 클라이언트는 Android로 작성됩니다. 실제로 그것은 매우 간단한 메신저 클라이언트가 될 것입니다. 응용 프로그램은 안드로이드 스튜디오 v3.14를 사용하여 리눅스 컴퓨터에서 개발되었다. 응용 프로그램은 안드로이드 시뮬레이터 (클라이언트만 작동)에서 테스트되었으며 삼성 갤럭시 S6 (클라이언트 및 서버 작동). 비정상적인 조건에서기본 연결이 원격 호스트 또는 네트워크 소프트웨어(예: TCP 연결의 경우 연결 재설정)에 의해 끊어질 수 있습니다. 네트워크 소프트웨어에 의해 연결이 끊어지면 반환된 입력 스트림에 다음과 같은 연결이 적용됩니다: 성능 기본 설정은 짧은 연결 시간, 낮은 대기 시간 및 높은 값의 상대적 중요성을 나타내는 세 정수에 의해 설명됩니다. 대역폭. 정수의 절대 값은 관련이 없습니다. 프로토콜을 선택하기 위해 값은 단순히 비교되며 값이 클수록 더 강한 기본 설정을 나타냅니다. 음수 값은 양수 값보다 낮은 우선 순위를 나타냅니다. 예를 들어 응용 프로그램이 낮은 대기 시간 및 높은 대역폭 에 비해 짧은 연결 시간을 선호하는 경우 값(1, 0, 0)으로 이 메서드를 호출할 수 있습니다.

응용 프로그램이 낮은 대기 시간 보다 높은 대역폭을 선호 하 고 짧은 연결 시간 이상의 낮은 대기 시간을 선호 하는 경우 다음 값 (0, 1, 2)와 함께이 메서드를 호출할 수 있습니다. Android 휴대 전화와 컴퓨터 간에 메시지를 보내려면 컴퓨터가 전화에서 오는 소켓에서 보낸 메시지를 수신하는 프로그램을 실행해야 합니다. 스레드를 사용하여 TCP 통신을 관리합니다. 이 클래스는 클라이언트 소켓(“소켓”이라고도 함)을 구현합니다. 소켓은 두 컴퓨터 간의 통신을 위한 끝점입니다. AsyncTask를 사용하여 백그라운드 작업, 들어오는 메시지를 관리하기 위한 콜백 인터페이스, 클라이언트를 나타내는 GUI 및 TCPClient 클래스를 업데이트하기 위한 처리기를 사용합니다. 컴퓨터를 종료하기위한 쉬운 클라이언트 서버 응용 프로그램 – 나는 네트워크 원격 예제에서 이것을 설명 할 것이다. 네트워크 소켓은 장치 간 인터넷 연결의 끝점입니다.

클라이언트와 서버 – 기본적으로 우리는 연결을 처리하기 위해 소켓의 두 가지 유형이 필요합니다. 둘 사이의 주요 차이점은 서버 소켓이 들어오는 연결 요청을 수신 대기중이라는 것입니다. 이 스니펫에서 나는 당신에게 로컬 네트워크를 통해 안드로이드 클라이언트 장치와 자바 서버 응용 프로그램 사이의 간단한 연결을 표시하려고합니다. (경고: AsyncTask를 사용하는 것이 가장 현대적인 방법이 아닐 수도 있습니다!) 우리가 우리의 와이파이 모듈 또는 모든 TCP 장치와 함께 작동 할 수있는 TCP 클라이언트 와 TCP 서버 통신을 할 수 있도록 만든 안드로이드 응용 프로그램에 대한 소스 코드.. 또한, 첨부 안드로이드 폰에 설치할 수있는 APK 파일입니다. . . . . .

반환된 InputStream을 닫으면 관련 소켓이 닫힙집니다. 소켓에 긴급 데이터 1바이트를 보냅니다. 보낼 바이트는 데이터 매개 변수의 가장 낮은 8비트입니다. 긴급 바이트는 소켓 OutputStream에 이전 쓰기 후 및 나중에 OutputStream에 기록 하기 전에 전송 됩니다. 이 소켓을 닫으면 소켓의 InputStream 및 OutputStream도 닫힙습니다.