Notice
Recent Posts
Recent Comments
Link
투케이2K
175. (AndroidStudio/android/java) TCP IP Socket 소켓 통신 및 다중 채팅 프로그램 구현 - java (자바) 코드 사용 가능 본문
Android
175. (AndroidStudio/android/java) TCP IP Socket 소켓 통신 및 다중 채팅 프로그램 구현 - java (자바) 코드 사용 가능
투케이2K 2021. 7. 21. 13:51[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
[소스 코드]
/** ********************** [소켓 통신 참고 사항 설명] *********************** */
/**
* 1. 소켓 통신을 수행하기 위해서는 같은 망 (와이파이) 에 서버와 클라이언트 기기를 붙여야합니다
* 2. 클라이언트 : 서버 IP, PORT를 입력해서 접속을 시도합니다
* 3. 서버 : 접속한 클라이언트를 다중으로 받기 위해 while true 무한 루프를 사용합니다
* 4. 소켓 연결 및 종료 로직 : [와이파이가 연결된 상태 확인] >> [소켓 연결 실시] >> [액티비티가 종료되는 경우], [사용자가 임의로 종료 경우] >> [소켓 연결 종료 실시]
* 5. 소켓 데이터 송수신 로직 : [개별 클라이언트가 서버에 메시지 전송] >> [서버는 중개자 역할 : 전달 받은 메시지 확인] >> [현재 서버에 접속해 있는 클라이언트 모두에게 메시지 재전송]
* 6. 필요 퍼미션 :
* <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
* <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
* <uses-permission android:name="android.permission.INTERNET"/>
* <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
* <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
* <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
* <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
/** ********************** [소켓 통신 클라이언트 소스코드] *********************** */
//TODO [사용 방법 : 소켓 통신 연결 실시 : 사전, 서버와 같은 와이파이에 연결되어 있어야합니다]
ip = ip_edit.getText().toString().trim(); // [입력한 IP 주소로 셋팅]
port = num_textview2.getText().toString().trim(); // [입력한 PORT 포트로 셋팅]
socketStart(); // [실제 소켓 통신 연결 수행 메소드 호출]
//TODO [사용 방법 : 소켓 통신 데이터 송신 (보냄)]
if(mConnectedThread != null){ // [스레드가 null 이 아닌 경우 : 소켓 통신이 연결된 경우]
Toast.makeText(getApplicationContext(),"데이터 전송중입니다 ... ", Toast.LENGTH_LONG).show();
sendData = "["+ipCheckStart()+"]" + " - " + send_edit.getText().toString().trim(); // [송신 데이터에 메시지를 담습니다]
mConnectedThread.send(sendData.getBytes()); // [스레드 사용 메시지 전송 실시]
}
//TODO [사용 방법 : 소켓 통신 연결 종료]
socketStop(); // [소켓 통신 연결 종료 메소드 호출]
/** ********************** [소켓 통신 서버 단 소스코드] *********************** */
//TODO [사용 방법 : 서버 소켓 오픈 실시 : 사전, 와이파이에 연결되어 있어야합니다]
ip = ipCheckStart(); // [현재 현결된 아이피 확인]
socketStart(); // [실제 소켓 통신 오픈 수행 메소드 호출]
//TODO [사용 방법 : 서버 소켓 오픈 종료]
socketStop(); // [소켓 통신 연결 종료 메소드 호출]
[결과 출력]
[파일 첨부]
반응형
'Android' 카테고리의 다른 글
Comments