Клиент сервер
This commit is contained in:
parent
343ba8b6de
commit
cbd8ab17ee
24
client.html
Normal file
24
client.html
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Counter App</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Счетчик: <span id="counter">0</span></h1>
|
||||||
|
<button onclick="incrementCounter()">Увеличить счетчик</button>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var ws = new WebSocket("ws://178.44.100.206:8765");
|
||||||
|
|
||||||
|
ws.onmessage = function(event) {
|
||||||
|
document.getElementById('counter').innerText = event.data;
|
||||||
|
};
|
||||||
|
|
||||||
|
function incrementCounter() {
|
||||||
|
ws.send("increment");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
15
client.py
Normal file
15
client.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import asyncio
|
||||||
|
import websockets
|
||||||
|
|
||||||
|
async def send_message(uri, message):
|
||||||
|
async with websockets.connect(uri) as websocket:
|
||||||
|
await websocket.send(message)
|
||||||
|
response = await websocket.recv()
|
||||||
|
print(f"Received response from server: {response}")
|
||||||
|
|
||||||
|
async def main():
|
||||||
|
uri = "ws://178.44.100.206:8765" # Замените на адрес вашего сервера WebSocket
|
||||||
|
message = "Hello, server!"
|
||||||
|
await send_message(uri, message)
|
||||||
|
|
||||||
|
asyncio.run(main())
|
49
server.py
49
server.py
@ -1,29 +1,28 @@
|
|||||||
import socket
|
import asyncio
|
||||||
|
import websockets
|
||||||
|
|
||||||
# Создаем сокет
|
counter = 0
|
||||||
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
connected_clients = set()
|
||||||
|
|
||||||
# Задаем хост и порт для сервера
|
async def counter_server(websocket, path):
|
||||||
host = "94.241.227.75"
|
global counter
|
||||||
port = 12346
|
connected_clients.add(websocket)
|
||||||
|
try:
|
||||||
|
await websocket.send(str(counter))
|
||||||
|
async for message in websocket:
|
||||||
|
if message == 'increment':
|
||||||
|
counter += 1
|
||||||
|
# Отправляем обновление счетчика всем клиентам
|
||||||
|
await asyncio.gather(*[client.send(str(counter)) for client in connected_clients])
|
||||||
|
finally:
|
||||||
|
connected_clients.remove(websocket)
|
||||||
|
|
||||||
# Связываем сокет с адресом и портом
|
def run_server():
|
||||||
server_socket.bind((host, port))
|
PORT = 8765
|
||||||
|
start_server = websockets.serve(counter_server, "178.44.100.206", PORT)
|
||||||
|
asyncio.get_event_loop().run_until_complete(start_server)
|
||||||
|
print(f'Server started on ws://http://178.44.100.206/:{PORT}')
|
||||||
|
asyncio.get_event_loop().run_forever()
|
||||||
|
|
||||||
# Слушаем входящие подключения
|
if __name__ == '__main__':
|
||||||
server_socket.listen(3)
|
run_server()
|
||||||
print(f"Сервер запущен на http://{host}:{port}/")
|
|
||||||
|
|
||||||
while True:
|
|
||||||
# Принимаем входящее подключение
|
|
||||||
client_socket, client_address = server_socket.accept()
|
|
||||||
|
|
||||||
# Отвечаем клиенту
|
|
||||||
response_body = "Hello"
|
|
||||||
response_headers = "HTTP/1.1 200 OK\nContent-Type: text/plain\nContent-Length: " + str(len(response_body)) + "\n\n"
|
|
||||||
response = response_headers + response_body
|
|
||||||
|
|
||||||
client_socket.sendall(response.encode("utf-8"))
|
|
||||||
|
|
||||||
# Закрываем соединение с клиентом
|
|
||||||
client_socket.close()
|
|
Loading…
Reference in New Issue
Block a user