Zadanie 3
+6
pawel14
Wiezzel
kutino
Krzyszcz
kw
k1391
10 posters
Page 1 of 2
Page 1 of 2 • 1, 2
Zadanie 3
Mam problem z programem sox (przynajmniej tak mi się wydaje ). Mam na razie w nadajnik.c taki kawałek kodu:
while(fgets(buffer, PSIZE + 1, stdin) != NULL){ /* PSIZE = 512 */
strncpy(message, buffer, PSIZE);
length = strnlen(message, PSIZE);
puts(message);
}
kompiluję i odpalam w ten sposób:
sox -v -5.0 -S "01 - Welcome To The Jungle.mp3" -r 44100 -b 16 -e signed-integer -c 2 -t raw - | pv -q -L $((44100*4)) | ./nadajnik -a 0.0.0.0 | play -t raw -c 2 -r 44100 -b 16 -e signed-integer --buffer 32768
i to, co wydobywa się z moich głośników to niestety nie muzyka Guns&Roses tylko jakieś szumy i bzyknięcia
Wiecie, czy mam jakoś źle skonfigurowany program sox, czy gdzieś indziej jest błąd?
while(fgets(buffer, PSIZE + 1, stdin) != NULL){ /* PSIZE = 512 */
strncpy(message, buffer, PSIZE);
length = strnlen(message, PSIZE);
puts(message);
}
kompiluję i odpalam w ten sposób:
sox -v -5.0 -S "01 - Welcome To The Jungle.mp3" -r 44100 -b 16 -e signed-integer -c 2 -t raw - | pv -q -L $((44100*4)) | ./nadajnik -a 0.0.0.0 | play -t raw -c 2 -r 44100 -b 16 -e signed-integer --buffer 32768
i to, co wydobywa się z moich głośników to niestety nie muzyka Guns&Roses tylko jakieś szumy i bzyknięcia
Wiecie, czy mam jakoś źle skonfigurowany program sox, czy gdzieś indziej jest błąd?
k1391- Liczba postów : 108
Join date : 2010-11-17
Re: Zadanie 3
A co mogę zamiast tego użyć? Jak robię printf("%s", message); to też jest taki sam efekt, a printf chyba znaku '\n' sam nie dodaje?
k1391- Liczba postów : 108
Join date : 2010-11-17
Re: Zadanie 3
Nie doszedłem do tego etapu jeszcze, ale z tego co wiem fputs nie dodaje \n.
Czy ktoś może wie, czy subscriber multicastu może tak zrobić connect na odpowiednim sockecie, żeby nie przychodziło do niego nic poza tym? Czy też to musi być jakieś oszustwo, np. connect do samego siebie, a multicast, do którego się zapisał, i tak przyjdzie..?
Czy ktoś może wie, czy subscriber multicastu może tak zrobić connect na odpowiednim sockecie, żeby nie przychodziło do niego nic poza tym? Czy też to musi być jakieś oszustwo, np. connect do samego siebie, a multicast, do którego się zapisał, i tak przyjdzie..?
Krzyszcz- Liczba postów : 46
Join date : 2010-11-22
Re: Zadanie 3
printf w takiej formie nie wypisze null bajtu. Dlaczego nie wczytywać i wypisywać bajt po bajcie?
kw- Liczba postów : 62
Join date : 2010-11-25
Re: Zadanie 3
polecam użycie do stdin fread, a do stdout fwrite. u mnie działa.
kutino- Liczba postów : 38
Join date : 2010-11-08
Re: Zadanie 3
Jeśli użytkownik podłączy się tam np. programem Telnet, powinien zobaczyć prosty tekstowy interfejs, w którym za pomocą strzałek góra/dół można zmieniać stacje (bez konieczności wciskania Entera)
Czy ktoś ma dobry pomysł, jak to zrealizować? Próbowałem użyć ncurses z przekierowanym wejściem/wyjściem na gniazdko TCP, ale to generalnie nie działa. Próba przełączenia terminala telnetu w tryb raw albo cbreak skutkuje zmianą trybu terminala maszyny, na której jest uruchomiony proces odbiornika a nie maszyny łączącej się przez telnet.
P.S. Używania tcsetattr z termios.h nie uważam za dobry pomysł (chociaż to na razie jedyny działający sposób, jaki wymyśliłem).
Wiezzel- Liczba postów : 18
Join date : 2010-11-24
Re: Zadanie 3
Czy pojedyncze read na UDP może zwrócić więcej niż jedną paczkę za jednym powrotem?
Krzyszcz- Liczba postów : 46
Join date : 2010-11-22
Re: Zadanie 3
A tak zupełnie z innej beczki: jakie są kryteria zaliczenia labów? I czy do zaliczenia w II terminie SIKu muszę mieć zaliczone laby?
k1391- Liczba postów : 108
Join date : 2010-11-17
Re: Zadanie 3
Może ktoś napisać w jaki sposób zrobić ten graficzny interfejs albo chociaż dać jakiś przydatny link, bo ja już nie mam pomysłu. I czy w ogóle ten interfejs ma dawać możliwość przełączania aktualnie grającego nadajnika czy to ma być jakaś atrapa?
pawel14- Liczba postów : 118
Join date : 2010-10-12
Re: Zadanie 3
Kilka przydatnych sekwencji do sterowania terminalem:
http://ascii-table.com/ansi-escape-sequences-vt-100.php
Opcja ECHO telnetu:
http://tools.ietf.org/html/rfc857
Opcja SUPPRESS-GO-AHEAD telnetu:
http://tools.ietf.org/html/rfc858
Aby korzystać z predefiniowanych stałych telnetowych (IAC, WILL, ECHO etc.) trzeba załączyć nagłówek:
http://ascii-table.com/ansi-escape-sequences-vt-100.php
Opcja ECHO telnetu:
http://tools.ietf.org/html/rfc857
Opcja SUPPRESS-GO-AHEAD telnetu:
http://tools.ietf.org/html/rfc858
Aby korzystać z predefiniowanych stałych telnetowych (IAC, WILL, ECHO etc.) trzeba załączyć nagłówek:
- Code:
#include <arpa/telnet.h>
Wiezzel- Liczba postów : 18
Join date : 2010-11-24
Re: Zadanie 3
Wielkie dzięki.
EDIT:
Powtórzę pytanie z posta wyżej. Czy poprzez interfejs można zmieniać aktualnie grającą stację czy to ma być tylko atrapa?
EDIT:
Powtórzę pytanie z posta wyżej. Czy poprzez interfejs można zmieniać aktualnie grającą stację czy to ma być tylko atrapa?
pawel14- Liczba postów : 118
Join date : 2010-10-12
Re: Zadanie 3
Z tego co rozumiem to tak. Kiedy użytkownik naciska strzałkę w górę, to zaczyna grać poprzednia stacja a kiedy naciska strzałkę w dół to następna.
Wiezzel- Liczba postów : 18
Join date : 2010-11-24
Re: Zadanie 3
Ok, czyli będzie trochę więcej zabawy. Jeszcze raz dzięki.
pawel14- Liczba postów : 118
Join date : 2010-10-12
Re: Zadanie 3
Niestety mam duże problemy z tym interfejsem.
Jak wysłać sekwencję "escape", żeby Telnet ją dobrze zinterpretował?
Próbuję to robić w ten sposób: wpisuję do tablicy kolejno znaki sekwensji i ją wysyłam. Jednak w Telneci pokazują się tylko krzaczki.
I czy można jakoś zablokować wpisywanie znaków w Telnecie, a pozostawić tylko poruszanie strzałkami.
Jak wysłać sekwencję "escape", żeby Telnet ją dobrze zinterpretował?
Próbuję to robić w ten sposób: wpisuję do tablicy kolejno znaki sekwensji i ją wysyłam. Jednak w Telneci pokazują się tylko krzaczki.
I czy można jakoś zablokować wpisywanie znaków w Telnecie, a pozostawić tylko poruszanie strzałkami.
pawel14- Liczba postów : 118
Join date : 2010-10-12
Re: Zadanie 3
http://www.advancedlinuxprogramming.com/alp-folder/alp-ch02-writing-good-gnu-linux-software.pdf tutaj jset opisane jak mozna parametry pobierac z tymi -n itp
marcinek- Liczba postów : 35
Join date : 2010-10-15
Re: Zadanie 3
Moim zdaniem telnet należy przełączyć w character mode, żeby to działało
[EDIT]
Nie kumałem dostatecznie protokołu telnet, są magiczne sekwencje kontrolne, które można wysłać do klienta telnetu: jak 255-251-3, która powoduje przełączenie właśnie w ten tryb.
A co do aktywności na forum zadania, to błagam...
[EDIT]
Nie kumałem dostatecznie protokołu telnet, są magiczne sekwencje kontrolne, które można wysłać do klienta telnetu: jak 255-251-3, która powoduje przełączenie właśnie w ten tryb.
A co do aktywności na forum zadania, to błagam...
saephir- Liczba postów : 84
Join date : 2010-10-20
Re: Zadanie 3
Wydaje mi się, że raczej 255 253 1, bo to ma być IAC DO SUPPRESS-GO-AHEAD a nie IAC WILL SUPPRESS-GO-AHEAD.
Wiezzel- Liczba postów : 18
Join date : 2010-11-24
Re: Zadanie 3
Mógłby ktoś powiedzieć jak można sensownie i w miarę prosto zrobić buforowanie, bo czytając forum na moodlu sam już nie wiem co jest dobrze.
Heniek- Liczba postów : 329
Join date : 2010-10-12
Re: Zadanie 3
Szybko&prosto: tablica cykliczna, dla której trzymasz dodatkowo offset - numer pierwszego pakietu w buforze. NUMER_PAKIETU % ROZMIAR_BUFORA wyznacza pozycję w tablicy. Gdy do tablicy trafiają nowe dane, nadpisujemy stare.
saephir- Liczba postów : 84
Join date : 2010-10-20
Re: Zadanie 3
A te stare wysyłamy na wyjście czy po prostu gubimy?
Heniek- Liczba postów : 329
Join date : 2010-10-12
Re: Zadanie 3
Dzisiaj na labie u Janowskiej (były 3 osoby) dowiedziałem się, że najprawdopodobniej będziemy oddawać osobiście aplikacje na następnych zajęciach (ewentualnie na jeszcze następnych), także z pewnością będzie duża dowolność.
Nie jest to trudne do przewidzenia
Zasadniczy cel jest taki, żeby grała muzyka i była jakaś retransmisja, mniej lub bardziej skuteczna.
Nie jest to trudne do przewidzenia
Zasadniczy cel jest taki, żeby grała muzyka i była jakaś retransmisja, mniej lub bardziej skuteczna.
saephir- Liczba postów : 84
Join date : 2010-10-20
Re: Zadanie 3
Męczę się już z tym. Dostaje na socket znak z telnetu. Może ktoś powiedzieć jak sprawdzić, czy wciśnięto znak "Strzałka w górę/dół"
Heniek- Liczba postów : 329
Join date : 2010-10-12
Page 1 of 2 • 1, 2
Page 1 of 2
Permissions in this forum:
You cannot reply to topics in this forum
|
|