기억 저장소

클라우드 기반 인공지능 개발과 DevOps 실무

프론트엔드/안드로이드 스튜디오

안드로이드 스튜디오 : Socket / 소켓

하늘.98 2022. 2. 7. 17:57

소켓
Ip 주소로 목적지 호스트를 알아내고, 포트를 통해 접속점을 찾아내는 소켓 연결.
 => TCP / IP 과 UDP 방식으로 나뉜다. 
=> 일반적인 연결 프로그래밍은 TCP / IP을 사용 
=> UDP : 인어넷 전화 SIP 프로토콜, 멀티미디어 데이터 스트림을 처리(RTP프로토콜) 할경우 

-----------------------------------------------------------------------------------------------------------------------

HTTP 프로토콜과 소켓

HTTP 프로토콜 : 소켓으로 웹 서버에 연결한 후 , 요청사항을 전송하고, 응답을 받은 후 연결을 끊는다..(비연결성)
                   안드로이드 : java.net.~~~~/ 반드시 스레드가 필수!!!!! / 핸들러

--------------------------------------------------------------------------------------------------------------------------

실제 앱에서는 ObjectOutputStream 대신 DataOutputStream 를 사용 ...
DataOutpuStream를 사용하는 이유 :
 => 서로 다른 언어로 만들어진 서버와 통신할 경우, 데이터 송수신에 문제가 발생하여..
      정상적인 앱 실행이 안될 경우가 많기 때문에..
      읽어올 때 : DataInputStream 클래스 
      내보낼 때 : DataOutputStream 클래스 

비연결성인 HTTP 프로토콜은 페이지 정보를 요청할 때마다 소켓을 새로 연결하고,
응답을 받은 후, 소켓의 연결을 끊는 것이 일반적 ...
연결된 소켓 위에서 HTTP 프로토콜에 맞는 요청(request)을 보내고 응답(response)을 받아 처리 

============================================================================코드 보기 

AndroidManifest.xml

인터넷을 연결하는 코드

<uses-permission android:name="android.permission.INTERNET"/>

----------------------------------------------------------------------------------------------------------------------------

============================================================================

activity_main.xml

============================================================================