step2
This commit is contained in:
parent
b556c713f5
commit
14c0fc21b7
8
UDP_broadcast.py
Normal file
8
UDP_broadcast.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import socket
|
||||||
|
|
||||||
|
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
|
client.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
||||||
|
client.sendto(b'hello server this is ivan', ('172.20.10.15', 10001))
|
||||||
|
#data, _ = client.recvfrom(1024)
|
||||||
|
#print(f"Ответ от сервера: {data.decode()}")
|
||||||
|
client.close()
|
||||||
50
UDP_chat.py
Normal file
50
UDP_chat.py
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import socket
|
||||||
|
import threading
|
||||||
|
|
||||||
|
# Константы
|
||||||
|
BROADCAST_IP = "255.255.255.255"
|
||||||
|
PORT = 10000
|
||||||
|
BUFFER_SIZE = 1024
|
||||||
|
|
||||||
|
# Функция для отправки сообщений
|
||||||
|
def send_messages(sock, username):
|
||||||
|
while True:
|
||||||
|
message = input()
|
||||||
|
if message.startswith("/pm"):
|
||||||
|
# Личное сообщение в формате /pm <ip> <сообщение>
|
||||||
|
try:
|
||||||
|
_, target_ip, private_message = message.split(" ", 2)
|
||||||
|
sock.sendto(f"PM {username}: {private_message}".encode(), (target_ip, PORT))
|
||||||
|
except ValueError:
|
||||||
|
print("Неверный формат команды. Используйте: /pm <ip> <сообщение>")
|
||||||
|
else:
|
||||||
|
# Отправка сообщения в общий чат
|
||||||
|
sock.sendto(f"BC {username}: {message}".encode(), (BROADCAST_IP, PORT))
|
||||||
|
|
||||||
|
# Функция для приема сообщений
|
||||||
|
def receive_messages(sock):
|
||||||
|
while True:
|
||||||
|
data, addr = sock.recvfrom(BUFFER_SIZE)
|
||||||
|
message = data.decode()
|
||||||
|
if addr[0] != socket.gethostbyname(socket.gethostname()):
|
||||||
|
print(f"[{addr[0]}] {message}")
|
||||||
|
|
||||||
|
# Настройка сокета
|
||||||
|
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
|
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
||||||
|
|
||||||
|
# Привязка к порту
|
||||||
|
sock.bind(("", PORT))
|
||||||
|
|
||||||
|
# Имя пользователя
|
||||||
|
username = input("Введите ваше имя: ")
|
||||||
|
|
||||||
|
# Запуск потоков для отправки и получения сообщений
|
||||||
|
send_thread = threading.Thread(target=send_messages, args=(sock, username))
|
||||||
|
receive_thread = threading.Thread(target=receive_messages, args=(sock,))
|
||||||
|
|
||||||
|
send_thread.start()
|
||||||
|
receive_thread.start()
|
||||||
|
|
||||||
|
send_thread.join()
|
||||||
|
receive_thread.join()
|
||||||
8
UDP_client.py
Normal file
8
UDP_client.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import socket
|
||||||
|
|
||||||
|
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
|
client.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
||||||
|
client.sendto(b'hello server this is ivan', ('255.255.255.255', 10001))
|
||||||
|
#data, _ = client.recvfrom(1024)
|
||||||
|
#print(f"Ответ от сервера: {data.decode()}")
|
||||||
|
client.close()
|
||||||
10
UDP_server.py
Normal file
10
UDP_server.py
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import socket
|
||||||
|
|
||||||
|
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
|
server.bind(('0.0.0.0', 10001))
|
||||||
|
print("UDP сервер запущен")
|
||||||
|
|
||||||
|
while True:
|
||||||
|
data, addr = server.recvfrom(1024)
|
||||||
|
print(f"Сообщение от {addr}: {data.decode()}")
|
||||||
|
server.sendto(data.upper(), addr)
|
||||||
8
r1_client.py
Normal file
8
r1_client.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import socket
|
||||||
|
|
||||||
|
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
client.connect(('172.20.10.2', 10000))
|
||||||
|
client.sendall(b'hello server')
|
||||||
|
data = client.recv(1024)
|
||||||
|
print(f"Ответ от сервера: {data.decode()}")
|
||||||
|
client.close()
|
||||||
21
r1_server.py
Normal file
21
r1_server.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import socket
|
||||||
|
|
||||||
|
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
server.bind(("0.0.0.0", 10000))
|
||||||
|
server.listen(1)
|
||||||
|
print("TCP сервер запущен")
|
||||||
|
|
||||||
|
while True:
|
||||||
|
|
||||||
|
conn, addr = server.accept()
|
||||||
|
print(f"Подключение от {addr}")
|
||||||
|
|
||||||
|
data = conn.recv(1024)
|
||||||
|
if not data:
|
||||||
|
break
|
||||||
|
conn.sendall(data.upper())
|
||||||
|
|
||||||
|
conn.close()
|
||||||
|
|
||||||
|
if data.upper() == b'EXIT':
|
||||||
|
break
|
||||||
Loading…
Reference in New Issue
Block a user