소켓과 MySQL을 사용한 JAVA 채팅 프로그램(HawkTalk Project)

2023. 1. 4. 14:31·Project
반응형

소켓과 MySQL을 사용한 채팅 프로그램

 

깃허브 코드: https://github.com/iseungho/HawkTalk

프로젝트 개요

  • Java Swing 환경의 텍스트 채팅 애플리케이션으로, Socket 통신과 Multi Thread 프로그래밍으로 구현한 채팅 프로그램
  • 그룹 채팅 및 실시간 그림판 기능을 제공하며 MySQL을 이용하여 유저 정보를 데이터베이스에 저장 및 수정, 삭제가 가능한 프로그램

주요 기능

  • 로그인/로그아웃 기능, 사용자 등록/수정/삭제
  • 온라인 유저 목록 확인 기능
  • 온라인 채팅 기능
  • 그룹 채팅 기능
  • 온라인 그림판 기능
  • Jsoup을 사용한 실시간 날씨 크롤링 기능

프로그램 구성도

Untitled

실행시 주의사항

  • 다른 컴퓨터에서 통신할 땐 LogInLayout 클래스에 있는 ipAddress 를 localhost 에서 서버의 IP주소로 수정하여 사용한다.

실행화면과 기능설명

로그인/로그아웃 기능, 사용자 등록/수정/삭제

  • JDBCconnector 클래스를 이용하여 MySQL DB 접속을 통해 사용자의 정보를 저장 및 관리한다.

Untitled 1

 

Untitled 2

온라인 유저 목록 확인 기능

  • 클라이언트가 접속하면 ServerBack 클래스 에 있는 clientThreadList 에 해당 스레드를 추가한다.
  • 그 후 ClientBack 클래스 에서 접속한 클라이언트의 닉네임을 서버로 전송한다.
  • ServerBack 클래스가 받은 닉네임은 nickNameList 에 추가하고 접속중인 모든 클라이언트의 유저목록을 Clear한 후 다시 ServerBack 클래스 에 있는 nickNameList 에 있는 모든 닉네임을 추가한다.

Untitled 3

온라인 채팅 기능

  • 입력창에 보낼 메세지를 입력하고 전송버튼을 누르거나 엔터를 입력하면 해당 메세지는 서버로 전송된다.
  • 메세지를 받은 서버는 모든 클라이언트에게 보낸 유저와 메세지 내용을 전달한다.

Untitled 4

그룹 채팅 기능

  • 채팅방을 만들면 ServerBack 클래스 의 roomMap 에 채팅방의 이름과 새로운 포트번호를 갖는 ServerBack 클래스를 추가한다.
  • 각 채팅방은 각각의 ServerBack 클래스와 통신한다.

Untitled 5

온라인 그림판 기능

  • 채팅방에서 그림을 그리면 해당 좌표를 명령어와 함께 서버로 보낸다.
  • 서버는 해당 좌표와 명령어를 채팅방에 있는 모든 유저들의 GroupChatBack 클래스로 보낸 후 해당 좌표에 실시간으로 그린다.

Untitled 6

Jsoup을 사용한 실시간 날씨 크롤링 기능

  • 햇님모양 버튼을 누르면 https://weather.naver.com/today 사이트의 HTML정보를 크롤링하여 날씨 정보를 추출한다.

Untitled 7

기타 사항

개발환경 :

사용 라이브러리 : jsoup-1.15.3.jar, mysql-connector-j-8.0.31.jar

제작기간 : 약 4주

깃허브 코드: https://github.com/iseungho/HawkTalk

참고

https://recipes4dev.tistory.com/153

https://lanace.blogspot.com/2017/08/intellij-swing-1.html

반응형

'Project' 카테고리의 다른 글

Capeasy VR 공간이미지 생성 서비스  (1) 2024.12.07
뱅가드 수동 실행 프로그램(재부팅X)  (5) 2024.05.18
수강신청 및 티켓팅 클릭 매크로 (With Python)  (0) 2023.01.19
'Project' 카테고리의 다른 글
  • Capeasy VR 공간이미지 생성 서비스
  • 뱅가드 수동 실행 프로그램(재부팅X)
  • 수강신청 및 티켓팅 클릭 매크로 (With Python)
iseungho
iseungho
안녕하세요 제 이름은 이승호 입니다. 현재 취업 준비중이며 열심히 배우려는 자세로 학업에 임하고 있습니다!
  • iseungho
    ⭐️호승월드⭐️
    iseungho
  • 전체
    오늘
    어제
    • ⭐️전체글 보기⭐️ (38)
      • Project (4)
      • SK 루키즈 (25)
        • FE (6)
        • Cloud (19)
      • JavaScript (1)
      • JAVA (0)
      • HTML&CSS (5)
      • 잡다한 (3)
  • 블로그 메뉴

    • Github
    • 일상
    • 방명록
    • 태그 클라우드
  • 링크

  • 공지사항

    • 제 소개를 하자면...
  • 인기 글

  • 태그

    aws
    CI/CD
    클라우드
    Cloud
    s3
    개발
    DevOps
    REACT
    HTML
    spring
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.1
iseungho
소켓과 MySQL을 사용한 JAVA 채팅 프로그램(HawkTalk Project)
상단으로

티스토리툴바