Pobieranie danych z telnetu więcej niż 8192b długo pobiera |
Pobieranie danych z telnetu więcej niż 8192b długo pobiera |
14.09.2017, 19:39:57
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) |
Witam,
Potrzebuję pobierać sporo danych z urządzenia dokładnie switcha i rozmiar pobieranych danych przekracza 8192b. Wiem że fread może pobierać max 8192b dlatego próbuję zrobić pętle na fread i wtedy pobiera mi całe dane lecz pobranie reszty danych trwa bardzo długo... Mój kod wygląda tak:
Gdy robię to bez pętli czyli tylko jedno pobranie 8192b to jest ok szybko to się ładuje, ale jak już robi się pętla to tak naprawdę 1.5x więcej danych niż 8192b potrafi trwać minutę. Nie wiem czy ja coś robię źle ale próbowałem też tą pętle zastąpić $x = stream_get_contents($fps, -1); i to też podobnie trwa. Ma ktoś jakiś pomysł na mój problem?? dla przykładu pobranie stringa: string(13653) trwa dokładnie 1 minutę. Ten post edytował rafaliex 14.09.2017, 19:45:18 |
|
|
14.09.2017, 19:46:59
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
14.09.2017, 20:10:56
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) |
Próbowałem użyć tej klasy ale ona jest napisania typowo pod jakieś logowanie do serwera gdzie są znaki charakterystyczne. Wolałbym bazować na czymś innym.
|
|
|
14.09.2017, 20:22:34
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
a jesteś pewny że nie idzie tam się zalogować po ssh ? Co to za switch?
|
|
|
14.09.2017, 20:28:55
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) |
Ogólnie to nie będzie jeden rodzaj switcha. A tak naprawdę 4 rodzaje ale problem w tym że wszystkie switche mają zablokowane ssh, mają tylko telnet uruchomiony. I przy wszystkich switach paczkę danych 9182b pobiera w ciągu 2 sekund a resztę bardzo bardzo długo.
Ten post edytował rafaliex 14.09.2017, 20:30:12 |
|
|
14.09.2017, 21:08:47
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
zerknij jeszcze to https://github.com/fijiwebdesign/php-telnet
Ten post edytował Pyton_000 14.09.2017, 21:09:11 |
|
|
15.09.2017, 23:16:15
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) |
Użyłem czegoś innego
socket_connect socket_send socket_recv Te same dane wyciaga mi w 5 sekund, dzięki za pomoc. Teraz mam inny problem, gdy łącze się z jednym ze switchy i próbuje się zalogować to ciągle mam znaczek: "ÿý" Jak dodam handshake: $header1=chr(0xFF).chr(0xFB).chr(0x1F).chr(0xFF).chr(0xFB).chr(0x20).chr(0xF F).chr(0xFB).chr(0x18).chr(0xFF).chr(0xFB).chr(0x27).chr(0xFF).chr(0xFD).chr(0x01 ).chr(0xFF).chr(0xFB).chr(0x03).chr(0xFF).chr(0xFD).chr(0x03).chr(0xFF).chr(0xFC) .chr(0x23).chr(0xFF).chr(0xFC).chr(0x24).chr(0xFF).chr(0xFA).chr(0x1F).chr(0x00). chr(0x50).chr(0x00).chr(0x18).chr(0xFF).chr(0xF0).chr(0xFF).chr(0xFA).chr(0x20).c hr(0x00).chr(0x33).chr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0x2C).chr(0x33).ch r(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0xFF).chr(0xF0).chr(0xFF).chr(0xFA).chr (0x27).chr(0x00).chr(0xFF).chr(0xF0).chr(0xFF).chr(0xFA).chr(0x18).chr(0x00).chr( 0x41).chr(0x4E).chr(0x53).chr(0x49).chr(0xFF).chr(0xF0); to wtedy komunikat zwrotny jest większy: ÿýÿþÿþ ÿþ'ÿûÿýÿûÿúÿð Mój kod wygląda teraz tak:
I na wszystkich urządzeniach działa a na jednym innym modelu nie działa takie wysyłanie danych. Ma ktoś jakiś pomysł co trzeba zrobić by ta komunikacja zadziałała?? Próbowałem z sleep by poczekać na serwer ale nic nie chce zwrócić. |
|
|
22.09.2017, 11:52:42
Post
#8
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) |
Poczytaj o stream_set_blocking.
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 00:05 |