총 게시물 1,104건, 최근 0 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[소스코드]

mysql - php - android 채팅 개념 및 코드(개발하면서 정리한것)

글쓴이 : 삼식 날짜 : 2013-04-20 (토) 16:49 조회 : 25984
글주소 : http://www.androidside.com/B56/6887
chatting.zip (982byte), Down : 216, 2013-04-20 16:49:14
Chatting_Client.zip (3.2M), Down : 182, 2013-04-20 16:49:14
Chatting_Server.zip (11.3K), Down : 179, 2013-04-20 16:49:14
 
  아마존 AWS 1년 무료체험
쉽고 비용 효율적인 AWS 완전 관리형 DB, 지금 프리티어 1년 무료 체험하세요
aws.amazon.com/ko/
  에이콘아카데미 강남캠퍼스
전액무료, 구직자 우수훈련기관, 빅데이터활용분석, 프론트엔드+자바개발자교육 모집중
acornedu.co.kr
  패스트캠퍼스 l 온라인 강의
그로스해킹 완전 정복 / 온라인 250개 강의 평생 수강권이 85,000원 !
fastcampus.co.kr
신청하기


내역 . mysql에 있는 아이디 패스워드로 android에서 접속해 친구들과 채팅하는 프로그램.

1. 채팅이 가장 중요한 기능이기 떄문에 채팅 서버와 클라이언트가 필요합니다.

1.1 채팅서버는 TCP/IP통신을 해야하기 때문에 Server Socket을 이용해 포트번호를 물어둡니다.(Java)
1.2 안드로이드에 클라이언트를 만듭니다.
1.2.1구성은 로그인화면 - 회원등록화면 - 채팅대기화면(친구리스트) - 채팅화면
으로 구성하였습니다.

화면구성이 완료되면 이제 mysql에 테이블을 생성해야합니다. 예제이므로 간단히 chatting데이터베이스에
member테이블(id varchar(30), pass varchar(30), nickName varchar(30) ) 로 간단히 구성하였습니다.
friend테이블 (id varchar(30), friendid varchar(30) )는 친구테이블입니다.

아파치서버를 설치 한 후 아파치의 루트에 폴더 chatting을 만들어 php파일들을 넣어둡니다.

주의사항! 저도 한참 헤맨건데 이클립스의 가상머신에는 채팅이 되는데 안드로이드폰에서는 채팅이 안되는 문제가 있었습니다. 해결방법은 서버(데스크탑)를 무선망으로 잡아야 합니다. 망이 서로 다르기 떄문에 서로를 인식 못합니다 아무리 아이피가 있어도.. 조심하시기 바랍니다.

android에서 로그인을 하면 id와 pass를 가지고 php파일에 값을 던집니다.받은 값을 DB내의 값을 꺼내 비교합니다.
member테이블에 값이 있는지 없는지 확인후 JSON으로 다시 android에 1을 리턴하면 ok 

회원가입도 같은 패턴이지만 예외처리를 해줍니다. (id나 nickname의 입력값중에 기존 DB에 값이 있는가를 판단함)
마찬가지 패턴입니다만 예외처리는 android에서 해줬습니다 이유는 여러가지 상황을 연습해야하므로..

로그인이 되면 채팅 대기화면으로 가는데 intent를 넘기면서 DB에 id의 친구를 찾아 리스트로 뿌려줍니다.
검색버튼앞에 텍스트에 특정인의 아이디를 검색하면 DB의 id값을 불러옵니다(미구현)

친구 옆에 있는 버튼을 누르면 채팅이 됩니다. 채팅은 socket에 있는 InputStream과 OutputStream을 사용해 서버의 스레드에서 화면에 던져주는 형식입니다. 화면구성은 자기 닉네임, 채팅내용, 채팅시간이 뿌려집니다.

궁금하신 사항 있으면 댓글 남겨주세요 완전 허접해서 저같은 완전 초보만 다운받으셔서 연구해주세요
잘하시는 분들이 받으면 욕하실지도 ㅠㅠ

제가 이글을 올리는 이유는 여러가지 제약사항이 많아서 이 간단한 프로그램 만드는데 너무 오래걸렸기때문입니다.
예를 들어 왜 mysql과 안드로이드는 직접 접속을 막아놓은 걸까 왜 DB접속에 쓸대없이 쓰레드를 사용하는가?
이런 의문점을 풀어나가면서 만든다면 분명히 실력향상에 도움이 되리라 믿습니다.

회사가 일본이라 주석은 모두 일본어입니다. 하나 하나 쳐보시면서 주석을 채워나가시는 것도 좋은 거라고 생각합니다.
그리고 ip는 본인것으로 써주세요
감사합니다.



종합평점 (참여 35명)

추천 버튼을 클릭하면 추천한 자와 추천받은 자 모두에게 포인트가 지급됩니다.

UnlimitedJava 2018-06-11 (월) 18:43
좋은 정보 감사합니다.
댓글주소
겨우리1212 2018-06-18 (월) 09:06
좋은 정보 감사합니다.
댓글주소
장딴지연 2018-07-04 (수) 02:11
좋은 정보 감사합니다!!
댓글주소
처음  1  2  3  4  5  6  7  8  9  10  11
이전글  다음글  목록 글쓰기

총 게시물 1,104건, 최근 0 건 안내 RSS
번호 분류 제목 글쓴이 날짜 추천 조회
1104 강좌  100 Days Google Dev, 3: Google Play Services 7.5 StanleyKou 01-24 1 869
1103 강좌  100 Days Google Dev, 2: The Magic of LRU Cache StanleyKou 01-20 0 837
1102 강좌  100 Days Google Dev, 1: Android Design Support Library 2 StanleyKou 01-18 0 972
1101 TIP&TECH  리스트뷰에서 스위치,체크박스사용시 5 에찌 05-08 5 2495
1100 TIP&TECH  뷰(RecyclerView/...)에 Max Height 주기/[Android] 김병희라고요 04-26 0 2200
1099 TIP&TECH  TabLayout ClickEvent 에찌 04-21 1 1986
1098 TIP&TECH  현재 사용하고 있는 어플 foreground인지 backgroun… 4 에찌 04-14 2 2976
1097 TIP&TECH  안드로이드 Drawble 에 해상도 마다 이미지를 … 1 에찌 04-14 1 2012
1096 TIP&TECH  fragment 에서 ButterKnife 사용 시 resource가져올 때… 1 에찌 04-12 0 1605
1095 TIP&TECH  Youtube 및 facebook 동영상 업로드 할때 1 희망과꿈을 03-28 0 2074
1094 TIP&TECH  google service lib 가져올 때 3 에찌 03-20 3 2085
1093 소스코드  CentralRV 프로젝트 - RecyclerView 가로/세로 가운… 1 김병희라고요 01-30 2 3675
1092 TIP&TECH  번개검색 시스템/[Android] 2 김병희라고요 12-29 2 2611
1091 TIP&TECH  RecyclerView 특정 포지션으로 스크롤 - smoothScroll… 1 김병희라고요 12-12 1 2637
1090 강좌  왕앱따 107. 자바/C++ 파일읽기 속도 비교/[Androi 김병희라고요 11-26 0 2730
1089 강좌  왕앱따 106. C++ 동영상 강좌/[Android] 김병희라고요 11-23 0 3225
1088 소스코드  AOSP용 한글 키보드 입력키 엘카이저 11-17 1 3050
1087 강좌  addDrawerListener, setDrawerListener(deprecated)/[Android] 김병희라고요 11-02 2 3277
1086 강좌  왕앱따 103. 아이콘 반복클릭 테스트/[Android] 김병희라고요 11-01 0 2483
1085 강좌  왕앱따 100. 안드로이드 왕초보의 앱개발 따라… 김병희라고요 10-29 0 3018
 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  다음  맨끝
 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기