powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Написать сокет
3 сообщений из 3, страница 1 из 1
Написать сокет
    #39937453
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно создать сокет

Написал такой код:

На локалке работает! Загрузил на сервер, пытаюсь запустить gjkexf.

авторFile "socket.py", line 46, in run
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
AttributeError: module 'socket' has no attribute 'AF_INET'

на локалке версия Python 3.8.1

на серваке 3.6, может в этом проблема или ещё в чЁм??

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
import socket


URLS = {
    '/': 'hello index',
    '/blog': 'hello blog'
}


def generate_content(code, url):
    if code == 404:
        return '<ht>404</h1><p>Not found</p>'
    if code == 405:
        return '<ht>405</h1><p>Method not allowed</p>'
    return '<ht>{}</h1>'.format(URLS)


def  generate_headers(method, url):
    if not method == 'GET':
        return ('HTTP/1.1 405 Method not allowed\n\n', 405)

    if not url in URLS:
        return ('HTTP/1.1 404 Not found\n\n', 404)

    return ('HTTP/1.1 200 OK\n\n', 200)


def parse_request(request):
    parsed = request.split(' ')

    method = parsed[0]
    url = parsed[1]

    return (method, url)


def generate_response(request):
    method, url = parse_request(request)
    headers, code = generate_headers(method, url)
    body = generate_content(code, url)

    return (headers + body).encode()


def run():
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    server_socket.bind(('localhost', 5000))
    server_socket.listen()

    while True:
        client_socket, addr = server_socket.accept()
        request = client_socket.recv(1024)
        print(request)
        print()
        print(addr)

        response = generate_response(request.decode('utf-8'))

        client_socket.sendall(response)
        client_socket.close()


if __name__ == '__main__':
    run()
...
Рейтинг: 0 / 0
Написать сокет
    #39937571
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переименовал фаил - заработало!

но на локлке я запрашивал как то так http://localhost:5000/

Загрузил на сервер с доменом скажем my-domen.com pfghfibdf. my.domen.com:5000/ - зависает пока таимаут не получает! может причина что у сайта https или ещё в чём?
...
Рейтинг: 0 / 0
Написать сокет
    #39937589
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понял надо перенацелить вот здесь
Код: python
1.
server_socket.bind(('localhost', 5000))



Но на что? Domen или ip
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Написать сокет
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]