총 게시물 143건, 최근 0 건 안내 RSS 글쓰기
다음글  목록 글쓰기
[안드로이드]

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

글쓴이 : 삼식                   날짜 : 2013-04-20 (토) 16:49 조회 : 48045
글주소 : http://www.androidside.com/B51/6873
chatting.zip (982byte), Down : 114, 2013-04-20 16:49:14
Chatting_Client.zip (3.2M), Down : 96, 2013-04-20 16:49:14
Chatting_Server.zip (11.3K), Down : 96, 2013-04-20 16:49:14
 
  아마존 AWS 1년 무료체험
쉽고 비용 효율적인 AWS 완전 관리형 DB, 지금 프리티어 1년 무료 체험하세요
aws.amazon.com/ko/
  패스트캠퍼스 l 올인원패키지
어디에도 없는 그로스해킹 강의! 이 강의 하나면 완전 정복 250개 강의 평생수강
fastcampus.co.kr
  MYSQL 교보문고
MYSQL, e-교환권 최대 9천원+간편결제/카드혜택 8만6천원, 바로드림 서비스
www.kyobobook.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는 본인것으로 써주세요
감사합니다.




추천/비추천 클릭하면 추천받으신 분, 추천하신 분 모두에게 포인트가 지급됩니다.

 
 
마쉘로123 2016-08-22 (월) 23:26
좋은자료감사합니다
댓글주소
 
 
보스시프 2016-09-19 (월) 11:24
좋은 자료 감사합니다
댓글주소
 
 
웃긴아재 2016-12-21 (수) 02:07

좋은 자료에 감사드립니다.

댓글주소
 
 
베리베리잉 2017-02-08 (수) 14:17
감사합니다
댓글주소
 
 
crtvx 2017-03-23 (목) 11:43
감사합니다~!
댓글주소
 
 
앞바퀴 2017-07-28 (금) 16:39
댓글주소
 
 
안돌이123 2017-10-18 (수) 10:27
감사합니다
댓글주소
 
 
젤리조하 2017-12-14 (목) 11:27
고맙습니다
댓글주소
 
 
잔월 2018-06-01 (금) 18:01
감사합니다
댓글주소
 
 
아아조로 2018-10-29 (월) 15:19
열심히 공부해보도록하겠습니다.
댓글주소
 
 
아아조로 2018-11-05 (월) 14:31

감사합니다정말 ㅠ


댓글주소
 
 
소죠 2018-11-05 (월) 18:35
고맙습니다~~~

댓글주소
처음  1  2  3  4  5  6  7
다음글  목록 글쓰기

총 게시물 143건, 최근 0 건 안내 RSS
번호 분류 제목 글쓴이 날짜 비추천 조회
공지
원하는 코드를 [ code ]와 [ /code ]를 사용해서 감싸면 해당 코드가 아래처럼 라인 번호와 하이라이팅 기능이 추가됩…
카이로 01-09 0 11252
143 안드로이드
내역 . mysql에 있는 아이디 패스워드로 android에서 접속해 친구들과 채팅하는 프로그램. 1. 채팅이 가장 중요한 …
삼식 04-20 0 48046
142 안드로이드
밧데리 상태를 확인해보는 소스입니다. 참고하세요.
하이랜더 04-17 0 6753
141 안드로이드
카이로 04-15 0 18712
140 안드로이드
기본으로 제공되는 기능입니다만.... Vew에 옵션이 있습니다.... SurfaceView.setSecure(true)만 주면 된답니다. 이거외…
카이로 04-13 0 6422
139 안드로이드
구글에선 gif 이미지를 바로 올리는걸 추천하지 않더라구요 하지만 일일이 한장씩 사진 파일을 받아 이미지 애니…
쮜리 04-11 0 6879
138 안드로이드
가져다가 잘쓰면됨
초밥입니다 04-11 0 10679
137 안드로이드
이거 도움이 될런지 ... 어디서 구한건지 잘은 모르겠고. 그냥 있어서 도움되시라고 올려봅니다. 참고하세요.
하이랜더 04-08 0 13799
136 안드로이드
액티비티에서 메인액티비티로 핸들러를 이용해서 데이터 전송하기..   보내는 쪽: 메인엑티비티.핸들러.obta…
희수빈아빠 04-05 0 3867
135 안드로이드
버튼 홀드하고 있을때의 이벤트와 버튼을 떼었을때 이벤트 실현 코드 입니다.   btnAudio.setOnTouchListener(new View…
희수빈아빠 04-05 0 3225
134 안드로이드
==============소스====================================import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFa…
카이로 04-04 0 4438
133 자바
Java Image Filters I have a large number of Java Image filters which are freely available for download from this site. The filters are all standard J…
카이로 04-03 0 4003
132 자바
import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import…
카이로 04-03 0 5196
131 안드로이드
안드로이드에서 Usb Bulk Transfer 쌤플입니다.간단히 설명하면 VID(Vendor ID)와 PID(Product ID)가 맞는 Usb device를 찾아 자료…
star888 04-03 0 4133
130 웹앱
웹뷰를 이용하여 자바스크립트 인터페이스를 활용하여 앱종료 및 인텐트호출하는 방법을 설명합니다.  …
미니어스 04-01 0 4724
129 안드로이드
책장 넘기는 소스 코드입니다. NOTE As of this commit all "pages" will be 2-sided. There's a new class CurlPage, using which y…
카이로 03-29 0 5589
128 안드로이드
Usage For a working implementation of this project see the sample/ folder. Include one of the widgets in your view. This should usuall…
카이로 03-29 0 5152
127 안드로이드
슬라이딩 메뉴입니다. 아래 동영상 보시면 뭔지 알 수 있을거에요~~ 페이스북이나 네이버 카페 앱이나 등등 많이 …
카이로 03-29 0 6924
126 안드로이드
액션바를 안드로이드 버전에 상관없이 사용할 수 있게 해주는 오픈소스 사용방법 http://actionbarsherlock.com/usag…
카이로 03-29 0 3726
125 안드로이드
안녕하세요. 매력의신입니다. 요즘 다들 라이센스 때문에 DB선택에 많이 고민 하실탠데요 큐브리드라는 DB가…
MyGirl전효성 03-13 0 4078
124 안드로이드
==================================================================== Create a Java project and a package "de.vogella.mysql.first". Create a folder …
앱개발재밌어 03-07 0 4901
 1  2  3  4  5  6  7  8  맨끝
 


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