124 lines
4.9 KiB
Python
124 lines
4.9 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Простой скрипт для тестирования доступности сервера
|
||
"""
|
||
import socket
|
||
import requests
|
||
import sys
|
||
|
||
def test_tcp_connection(host, port):
|
||
"""Тестирует TCP подключение к серверу"""
|
||
try:
|
||
print(f"🔍 Testing TCP connection to {host}:{port}")
|
||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||
sock.settimeout(5)
|
||
result = sock.connect_ex((host, port))
|
||
sock.close()
|
||
|
||
if result == 0:
|
||
print(f"✅ TCP connection successful to {host}:{port}")
|
||
return True
|
||
else:
|
||
print(f"❌ TCP connection failed to {host}:{port} (error: {result})")
|
||
return False
|
||
except Exception as e:
|
||
print(f"❌ TCP connection error: {e}")
|
||
return False
|
||
|
||
def test_http_connection(url):
|
||
"""Тестирует HTTP подключение к серверу"""
|
||
try:
|
||
print(f"🌐 Testing HTTP connection to {url}")
|
||
response = requests.get(url, timeout=5)
|
||
print(f"✅ HTTP connection successful: {response.status_code}")
|
||
return True
|
||
except Exception as e:
|
||
print(f"❌ HTTP connection error: {e}")
|
||
return False
|
||
|
||
def test_socket_io_endpoint(url):
|
||
"""Тестирует Socket.IO endpoint"""
|
||
try:
|
||
socket_io_url = f"{url}/socket.io/"
|
||
print(f"🔌 Testing Socket.IO endpoint: {socket_io_url}")
|
||
response = requests.get(socket_io_url, timeout=5)
|
||
print(f"✅ Socket.IO endpoint accessible: {response.status_code}")
|
||
if "socket.io" in response.text.lower():
|
||
print("✅ Socket.IO server detected")
|
||
return True
|
||
except Exception as e:
|
||
print(f"❌ Socket.IO endpoint error: {e}")
|
||
return False
|
||
|
||
def test_emulator_connection(port):
|
||
"""Тестирует подключение с адреса эмулятора Android"""
|
||
try:
|
||
print(f"📱 Testing Android emulator connection to localhost:{port}")
|
||
# Тестируем localhost (это то, что видит эмулятор как 10.0.2.2)
|
||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||
sock.settimeout(5)
|
||
result = sock.connect_ex(("127.0.0.1", port))
|
||
sock.close()
|
||
|
||
if result == 0:
|
||
print(f"✅ Emulator connection to localhost:{port} successful")
|
||
return True
|
||
else:
|
||
print(f"❌ Emulator connection to localhost:{port} failed (error: {result})")
|
||
return False
|
||
except Exception as e:
|
||
print(f"❌ Emulator connection error: {e}")
|
||
return False
|
||
|
||
def main():
|
||
server_ip = "192.168.219.108"
|
||
server_port = 3001
|
||
server_url = f"http://{server_ip}:{server_port}"
|
||
|
||
print("🚀 Starting server connectivity test")
|
||
print(f"📍 Target: {server_url}")
|
||
print("-" * 50)
|
||
|
||
# Тест 1: TCP подключение
|
||
tcp_ok = test_tcp_connection(server_ip, server_port)
|
||
|
||
# Тест 2: HTTP подключение
|
||
http_ok = test_http_connection(server_url)
|
||
|
||
# Тест 3: Socket.IO endpoint
|
||
socketio_ok = test_socket_io_endpoint(server_url)
|
||
|
||
# Тест 4: Эмулятор Android (localhost)
|
||
emulator_ok = test_emulator_connection(server_port)
|
||
|
||
print("-" * 50)
|
||
print("📊 РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ:")
|
||
print(f" TCP connection: {'✅ OK' if tcp_ok else '❌ FAIL'}")
|
||
print(f" HTTP connection: {'✅ OK' if http_ok else '❌ FAIL'}")
|
||
print(f" Socket.IO endpoint: {'✅ OK' if socketio_ok else '❌ FAIL'}")
|
||
print(f" Emulator access: {'✅ OK' if emulator_ok else '❌ FAIL'}")
|
||
|
||
if tcp_ok and http_ok and socketio_ok:
|
||
print("\n🎉 Сервер полностью доступен!")
|
||
if emulator_ok:
|
||
print(" Android эмулятор сможет подключаться через 10.0.2.2")
|
||
else:
|
||
print(" ⚠️ Эмулятор может не подключиться - сервер должен слушать на 0.0.0.0")
|
||
else:
|
||
print("\n🚨 ПРОБЛЕМЫ С СЕРВЕРОМ:")
|
||
if not tcp_ok:
|
||
print(" - Сервер не отвечает на TCP подключения")
|
||
print(" - Проверьте, запущен ли сервер на порту 3001")
|
||
if not http_ok:
|
||
print(" - HTTP сервер недоступен")
|
||
print(" - Проверьте конфигурацию веб-сервера")
|
||
if not socketio_ok:
|
||
print(" - Socket.IO endpoint недоступен")
|
||
print(" - Проверьте настройки Socket.IO сервера")
|
||
if not emulator_ok:
|
||
print(" - Эмулятор не сможет подключиться")
|
||
print(" - Запустите сервер с bind на 0.0.0.0:3001")
|
||
|
||
if __name__ == "__main__":
|
||
main()
|