mirror of
https://github.com/Justuser3310/jetwork.git
synced 2025-02-08 01:37:38 +00:00
Комбинированная версия работы с сетью, более проще чем чистый socket
This commit is contained in:
parent
f393a647a0
commit
dcff67c8f0
34
main.py
34
main.py
@ -2,6 +2,8 @@ from os import system, name
|
|||||||
from threading import Thread
|
from threading import Thread
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
|
from network import *
|
||||||
|
|
||||||
# Здесь общий запуск всех файлов и команд
|
# Здесь общий запуск всех файлов и команд
|
||||||
'''
|
'''
|
||||||
# Проверка обновлений
|
# Проверка обновлений
|
||||||
@ -16,24 +18,34 @@ print("\nУспешно перезагружено!")
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# Порт для приёма всяких запросов
|
# Порт для приёма всяких запросов
|
||||||
from random import randint
|
def reverse_proxy(dest, port = 8000):
|
||||||
dest = randint(4000, 4200)
|
|
||||||
def reverse_proxy():
|
|
||||||
global dest
|
|
||||||
port = 8000
|
|
||||||
if name == "posix":
|
if name == "posix":
|
||||||
system(f"./bore local {port} --to jetwork.404.mn --port {dest}")
|
system(f"./bore local {port} --to jetwork.404.mn --port {dest}")
|
||||||
elif name == "nt":
|
elif name == "nt":
|
||||||
system(f"bore.exe local {port} --to jetwork.404.mn --port {dest}")
|
system(f"bore.exe local {port} --to jetwork.404.mn --port {dest}")
|
||||||
|
|
||||||
# Стартуем проброс порта
|
# Стартуем проброс порта
|
||||||
rp = Thread(target = reverse_proxy)
|
# http сервер
|
||||||
|
global http_port
|
||||||
|
http_port = port_gen()
|
||||||
|
rp_http = Thread(target = reverse_proxy, args=(http_port,))
|
||||||
|
rp_http.start()
|
||||||
|
print(f"Порт http сервера: {http_port}")
|
||||||
|
# сервер для пинга
|
||||||
|
serv_port = port_gen()
|
||||||
|
rp = Thread(target = reverse_proxy, args=(serv_port, 8001))
|
||||||
rp.start()
|
rp.start()
|
||||||
print(f"\nВаш порт: {dest}")
|
print(f"Порт сервера: {serv_port}")
|
||||||
|
|
||||||
from network import *
|
mode = 1
|
||||||
|
|
||||||
#server(8000)
|
if mode == 0:
|
||||||
pport = int(input())
|
serv_http = Thread(target = server_http)
|
||||||
client(pport, "is_t")
|
serv_http.start()
|
||||||
|
os.chdir("../") # возвращаемся в корень
|
||||||
|
serv = Thread(target = server, args=(http_port,))
|
||||||
|
serv.start()
|
||||||
|
elif mode == 1:
|
||||||
|
pport = int(input())
|
||||||
|
client(pport)
|
||||||
|
|
||||||
|
49
network.py
49
network.py
@ -1,5 +1,7 @@
|
|||||||
import socket
|
import socket
|
||||||
|
from requests import get
|
||||||
import os
|
import os
|
||||||
|
from random import randint
|
||||||
|
|
||||||
# Здесь идёт обработка всех запросов через сеть
|
# Здесь идёт обработка всех запросов через сеть
|
||||||
|
|
||||||
@ -9,8 +11,22 @@ import os
|
|||||||
# 3. Передача сайта
|
# 3. Передача сайта
|
||||||
# 4. Приём рассылки сайтов
|
# 4. Приём рассылки сайтов
|
||||||
|
|
||||||
def server(port = 8000):
|
def port_gen():
|
||||||
|
port = randint(4000, 4200)
|
||||||
|
if client(port) == None:
|
||||||
|
return port
|
||||||
|
|
||||||
|
while client(port) != None:
|
||||||
|
port = randint(4000, 4200)
|
||||||
|
return port
|
||||||
|
|
||||||
|
def server_http():
|
||||||
|
os.chdir("cached")
|
||||||
|
os.system("python -m http.server")
|
||||||
|
|
||||||
|
def server(http_port):
|
||||||
host = "127.0.0.1"
|
host = "127.0.0.1"
|
||||||
|
port = 8001
|
||||||
|
|
||||||
s = socket.socket()
|
s = socket.socket()
|
||||||
s.bind((host, port))
|
s.bind((host, port))
|
||||||
@ -34,7 +50,7 @@ def server(port = 8000):
|
|||||||
elif op[:3] == "is_":
|
elif op[:3] == "is_":
|
||||||
check = op[3:]
|
check = op[3:]
|
||||||
if os.path.exists(f'cached/{check}'):
|
if os.path.exists(f'cached/{check}'):
|
||||||
conn.send("exist".encode())
|
conn.send(str(http_port).encode())
|
||||||
else:
|
else:
|
||||||
conn.send("not exist".encode())
|
conn.send("not exist".encode())
|
||||||
conn.close()
|
conn.close()
|
||||||
@ -42,12 +58,27 @@ def server(port = 8000):
|
|||||||
# op = operation
|
# op = operation
|
||||||
def client(port, op = "ping"):
|
def client(port, op = "ping"):
|
||||||
host = 'jetwork.404.mn'
|
host = 'jetwork.404.mn'
|
||||||
s = socket.socket()
|
|
||||||
s.connect((host, port))
|
|
||||||
|
|
||||||
s.send(op.encode())
|
#if op == "ping":
|
||||||
data = s.recv(1024).decode()
|
# r = get(f"http://{host}:{str(port)}/jetwork")
|
||||||
print('Received from server: ' + data)
|
# print(r.headers['Content-Length'])
|
||||||
|
|
||||||
s.close()
|
if op == "ping" or op[:3] == "is_":
|
||||||
return data
|
s = socket.socket()
|
||||||
|
try:
|
||||||
|
s.connect((host, port))
|
||||||
|
except:
|
||||||
|
return None
|
||||||
|
|
||||||
|
s.send(op.encode())
|
||||||
|
okay = False
|
||||||
|
while not okay:
|
||||||
|
try:
|
||||||
|
data = s.recv(1024).decode()
|
||||||
|
okay = True
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
print(data)
|
||||||
|
|
||||||
|
s.close()
|
||||||
|
return data
|
||||||
|
5
setup.py
5
setup.py
@ -26,6 +26,11 @@ else:
|
|||||||
system("mkdir cached")
|
system("mkdir cached")
|
||||||
system("mkdir verify")
|
system("mkdir verify")
|
||||||
system("mkdir mysites")
|
system("mkdir mysites")
|
||||||
|
# Создаём файл для проверки что это клиент
|
||||||
|
# (файл существует -> это клиент jetwork)
|
||||||
|
with open("cached/jetwork"):
|
||||||
|
f.write("")
|
||||||
|
f.close()
|
||||||
|
|
||||||
print("Максимальный размер для кэшированных файлов. (в гигабайтах)")
|
print("Максимальный размер для кэшированных файлов. (в гигабайтах)")
|
||||||
print("Укажите 0 для отключения ограничения.")
|
print("Укажите 0 для отключения ограничения.")
|
||||||
|
Loading…
Reference in New Issue
Block a user