• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wysłanie pakietów - Jak "podzielić" wiadomość.

0 głosów
465 wizyt
pytanie zadane 29 stycznia 2020 w Inne języki przez kubekszklany Gaduła (3,250 p.)
Witam. Chciałbym zapytać jak najlepiej podzielić pakiet, aby nie było problemu np. z powtarzającymi się znakami - już tłumacze dokładniej o co mi chodzi. Załóżmy że chcemy wysłać pakiet z informacjami login i hasło. Więc możemy wysłać coś w stylu "Login=Ketchup Password=Musztarda". Potem podzielić (funkcją split) za pomocą znaku spacji i gotowe. Tylko co w przypadku gdy np. użytkownik wybierze login ze spacją? Albo użyje znaku równa się w haśle? Wtedy mamy np. "Login=Kilo Sera Password=1=2=3". I problem polega na tym że gdy podzielę to np. spacją czy znakiem równa się to robią się problemy, bo bo string np. zamiast na 2 części podzieli się na 3. Da się jakoś temu zapobiec? Mam nadzieję że zrozumieliście o co mi chodzi.
komentarz 29 stycznia 2020 przez adrian17 Mentor (355,160 p.)
Nie za bardzo rozumiem; po co w ogóle dzielisz wiadomość? Co z nimi potem robisz?
komentarz 29 stycznia 2020 przez kubekszklany Gaduła (3,250 p.)
Chodzi o to że mam napisaną aplikację klient i server i chciałbym np. wysłać pakiet tcp/udp z loginem i hasłem.
komentarz 29 stycznia 2020 przez adrian17 Mentor (355,160 p.)
A, OK. Przez chwilę myślałem że mówisz o ręcznym dzieleniu na pojedyncze pakiety, co brzmiało dziwnie.

To co mówi tangarr jest OK; po prostu trzeba jakoś zakodować te informacje by odróżnić elementy. Może to być newline, może to być spacja (i wtedy trzeba zakodować spację w haśle albo całe hasło owinąć np w ciapki) albo w ogóle myślenie nad tym "zrzucić" na inny poziom i użyć gotowe kodowanie jak JSON.

1 odpowiedź

0 głosów
odpowiedź 29 stycznia 2020 przez tangarr Mędrzec (155,140 p.)
wybrane 3 lutego 2020 przez kubekszklany
 
Najlepsza
Nie wiem czy pytanie dotyczy protokołu http, czy jest bardziej generalne.
W takich sytuacjach należy się rozejrzeć jak to robią starsi i mądrzejsi.
Na stronach www do przesyłania danych formularzy stosowane jest tak zwane kodowanie URL.
Poszczególne pola są oddzielone znakiem & a różne znaki specjalne są zakodowane przy pomocy kodowania procentowego. Tutaj znajdziesz szczegóły https://www.w3schools.com/tags/ref_urlencode.ASP

"Login=Ketchup Password=Sól z pieprzem"
zostanie zakodowany jako
"Login=Ketchup&Password=S%C3%B3l%20z%20pieprzem"
komentarz 29 stycznia 2020 przez kubekszklany Gaduła (3,250 p.)
Miałem na myśl i zwykłe protokoły tcp/udp a nie http. Mam napisaną aplikację klient i server i chciałbym np. wysłać pakiet z loginem i hasłem.
komentarz 29 stycznia 2020 przez tangarr Mędrzec (155,140 p.)
Ta metoda ciągle jest dla ciebie dostępna.
Inną metodą jest dodanie do wiadomości binarnego nagłówka zawierającego długość wiadomości.
Ewentualnie możesz wysłać obiekt JSON https://www.json.org/json-en.html.
Metod jest naprawdę wiele.
komentarz 29 stycznia 2020 przez kubekszklany Gaduła (3,250 p.)
No ale właśnie jakoś żadnej nie mogłem wykombinować, myślałem jedynie nad wysyłaniem tablicy stringów, ale nie próbowałem. Dzięki :)

Podobne pytania

0 głosów
0 odpowiedzi 268 wizyt
pytanie zadane 26 września 2018 w C# przez kubekszklany Gaduła (3,250 p.)
0 głosów
1 odpowiedź 1,084 wizyt
pytanie zadane 17 sierpnia 2019 w PHP przez ozi22 Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 404 wizyt
pytanie zadane 21 stycznia 2019 w C# przez kubekszklany Gaduła (3,250 p.)

93,754 zapytań

142,715 odpowiedzi

323,361 komentarzy

63,348 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...