Найти - Пользователи
Полная версия: Помогите с приёмом данных с gps трекера
Начало » Центр помощи » Помогите с приёмом данных с gps трекера
1
krilon
Почитал не мало в этом напровлении нашел вроде номальный вариант , вот собственно код .
while True:
    import socket
    sock = socket.socket(socket.SOCK_DGRAM, socket.SOCK_STREAM)
    sock.bind(('', 7777))
    sock.listen(1)
    conn, addr = sock.accept()
    print 'connected:', addr
    while True:
        data = conn.recv(1024)
        if not data:
            break
        conn.send(data.upper())
        print data
    conn.close()
проблемма в том что он не принимает пакеты с gps трекера .Подскожите что я делаю не так и в каком напровлении копать ?
спасибо исправил
JOHN_16
krilon
табы все выставленнны но здесь их почумуто не видно .
потому что код надо оборачивать в теги CODE в квадратных скобках - перед вами окно набора сообщени я - сверху одна из кнопочек, потратьте минуту, изучите.

Ваш код неверен тем что вы начинаете с создания сокета и указываете ему одновременно и TCP и UDP протоколы. Я не спец в сетях, но как то мне казалось что возможно только одно. Не смотря на то что вы уверенны что прочитали не мало - тем не менее не достаточно. Поэтому вы определитесь как именно работает ваш приемник, что бы для этого протокола написать корректный код.

P.S. и огласите модель трекера
krilon
На счёт протоколов создал клиента отпровлял пакеты сё приходило .
import socket
sock = socket.socket()
sock.connect(('localhost', 7777))
sock.send('hello, world!')
data = sock.recv(1024)
sock.close()
print data
мадель трекера скажу с утра так как он не у меня на данный момент .
Но по сути как я понял , он отпровляет по TCP/UDP протаколам . какраз они у меня находятся в
socket(socket.SOCK_DGRAM, socket.SOCK_STREAM).
krilon
Вот модель трекера : teltonika PSM-360
JOHN_16
krilon
Смотрите, берем официальную документацию, смотритм на класс socket:
socket.socket([family[, type]])
Create a new socket using the given address family, socket type and protocol number. The address family should be AF_INET (the default), AF_INET6 or AF_UNIX. The socket type should be SOCK_STREAM (the default), SOCK_DGRAM or perhaps one of the other SOCK_ constants. The protocol number is usually zero and may be omitted in that case.
Первым аргументом мы передаем тип адресного протокола либо это AF_UNIX для создания UNIX сокетов, либо это AF_INET для интернет адресснного пространства (могу ошибаться, возможно это IP сети) - это ваш случай.
Вторым аргументом нужно указать тип сокета - SOCK_STREAM для TCP, SOCK_DGRAM для UDP . Указать их одновременно не получится. Видимо потому что сети устроены так что сокеты не могут быть одновременно двух типов. Поэтому ваш код не правильный, ошибок не происходит потомоу что SOCK_* и AF_* это всего лишь переменные содержащие в себе цифры 1,2 и тд

Почему то Гугл мне не нашел документацию на этот приемник.М.б. вы ее предоставите? Потому что пока что как то все выглядит гаданием на кофейной гуще.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB