Skip to content

このリポジトリはPythonの標準ライブラリ(socket, threading)とTkinterを用いた、マルチスレッド対応のデスクトップGUIチャットアプリケーション。

Notifications You must be signed in to change notification settings

koki-bit/python-socket-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Python Socket Chat App

Pythonの標準ライブラリのみを用いて構築した、GUIベースのチャットアプリケーションです。 TCPソケット通信によるクライアント・サーバーモデルを採用し、threading モジュールを用いたマルチスレッド処理により、非同期でのメッセージ送受信を実現しています。

📸 ScreenShot

(ここに完成したアプリのスクリーンショット画像を貼り付ける)

🚀 Features (機能と特徴)

  • リアルタイム通信: TCPソケットを使用した信頼性の高いメッセージ交換。
  • GUIインターフェース: tkinter を使用し、直感的な操作が可能。
  • マルチクライアント対応: サーバーはマルチスレッドで動作し、複数のクライアントからの同時接続を処理します。
  • 非同期処理: 受信処理を別スレッド化することで、GUIのフリーズ(ブロッキング)を回避しています。

🛠️ Requirement (使用技術)

  • Python 3.x
  • Standard Libraries:
    • socket (Network)
    • threading (Concurrency)
    • tkinter (GUI)

📦 Installation & Usage (使い方)

リポジトリをクローンした後、以下の手順で実行してください。

1. サーバーの起動

まず、ホストとなるサーバーを立ち上げます。

python server.py

2. クライアントの起動

別のターミナル(または別のPC)でクライアントを立ち上げます。複数起動可能です。

python client.py

ユーザ名を入力して接続すると、チャットに参加できます。

⚙️ Architecture(仕組み)

本アプリケーションは、以下のようなアーキテクチャで動作しています。

  1. Server:socket.bindlistenで特定のポートを監視 ・クライアント接続ごとに新しいThreadを生成し、独立してメッセージを待ち受けます。 ・受信したメッセージは、接続中の全クライアントへブロードキャストされます。
  2. Client: ・メインスレッドでTkinter GUIの描画とユーザ入力(送信)を処理。 ・サブスレッドでサーバーからのメッセージを常時recvし、GUIを更新します。

📝 Future Improvements(今後の展望)

・ユーザ入退室通知機能の実装 ・GUIデザインのモダン化(customtkinerなどの導入) ・プライベートメッセージ機能の追加 ・通信の暗号化(SSL/TLS)

⛹️ Author

・koki-bit

追加のアドバイス: .gitignore ファイル

GitHubにアップロードする際、不要なファイル(キャッシュファイルなど)が含まれないように、.gitignoreという名前のファイルをリポジトリのルートに作り、以下を書いておきましょう。

# .gitignore

# Pythonのコンパイル済みキャッシュファイル
__pycache__/
*.py[cod]

# 環境設定ファイルやOSのファイル
.env
.DS_Store
   

About

このリポジトリはPythonの標準ライブラリ(socket, threading)とTkinterを用いた、マルチスレッド対応のデスクトップGUIチャットアプリケーション。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages