Skip to content

Commit e77f564

Browse files
committed
add server chat
1 parent 8234fa2 commit e77f564

File tree

2 files changed

+51
-14
lines changed

2 files changed

+51
-14
lines changed

client.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,29 @@
11
import socket
2+
import threading
23

3-
HOST = '127.0.0.1'
4-
PORT = 65432
4+
HOST = '127.0.0.1' # آی‌پی سرور
5+
PORT = 65432
6+
7+
def receive_messages(s):
8+
while True:
9+
data = s.recv(1024)
10+
if not data:
11+
print("Server disconnected")
12+
break
13+
print("Server:", data.decode())
14+
15+
def send_messages(s):
16+
while True:
17+
msg = input()
18+
s.sendall(msg.encode())
519

620
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
721
s.connect((HOST, PORT))
8-
s.sendall(b'Hello, world')
9-
data = s.recv(1024)
10-
print('Received', repr(data))
22+
print("Connected to server. Type messages:")
23+
24+
threading.Thread(target=receive_messages, args=(s,), daemon=True).start()
25+
threading.Thread(target=send_messages, args=(s,), daemon=True).start()
26+
27+
while True:
28+
pass
29+

server.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,34 @@
11
import socket
2+
import threading
23

3-
HOST = '127.0.0.1'
4-
PORT = 65432
4+
HOST = '127.0.0.1'
5+
PORT = 65432
6+
7+
def receive_messages(conn):
8+
while True:
9+
data = conn.recv(1024)
10+
if not data:
11+
print("Client disconnected")
12+
break
13+
print("Client:", data.decode())
14+
15+
def send_messages(conn):
16+
while True:
17+
msg = input()
18+
conn.sendall(msg.encode())
519

620
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
721
s.bind((HOST, PORT))
822
s.listen()
23+
print(f"Server listening on {HOST}:{PORT}")
924
conn, addr = s.accept()
10-
with conn:
11-
print('Connected by', addr)
12-
while True:
13-
data = conn.recv(1024)
14-
if not data:
15-
break
16-
conn.sendall(data)
25+
print('Connected by', addr)
26+
27+
# دو thread جداگانه برای ارسال و دریافت پیام‌ها
28+
threading.Thread(target=receive_messages, args=(conn,), daemon=True).start()
29+
threading.Thread(target=send_messages, args=(conn,), daemon=True).start()
30+
31+
# فقط نگه داشتن سرور باز
32+
while True:
33+
pass
34+

0 commit comments

Comments
 (0)