#!/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()