Dydaktyka:
FeedbackTo jest stara wersja strony!
O Qt [1] [2]
Wersje frameworku
qmake [1]
Wnętrzności: uic [2], moc [3]
Pętla zdarzeń [4], signals, slots, connect [5]
Klasy do obsługi socketów:
QObject::connect, sygnał newConnectionreadyRead [1]Zadanie 1:
QWidget jako klasę bazową domyślnie tworzonej klasy*.qmake):QT += network CONFIG += c++11
QLineEdit i QSpinBox) i (opcjonalnie) przycisk do nawiązywania połączenia (QPushButton)QTextEdit) i na wpisywanie wiadomości do wysłania (np. QLineEdit)QTcpSocket), jeśli trzeba stwórz go w konstruktorzeconnected, disconnected i error (lub zdarzenie stateChanged) QTextEdit ma metodę append() (thread-safe)QLineEdit wyciąga się metodą text()QSpinBox wyciąga się metodą value()QTcpSocket nawiązuje się (asynchronicznie) używając metody connectToHost (metody connect i disconnect są zajęte przez obsługę zdarzeń)
IP multicast - przypomnienie
Pula adresów (224/4), lokalne adresy (224/24), Organization-Local Scope
IGMP
Użycie IP multicast w BSD socket API: multicast_example
Zadanie 2a: Wybierzcie wspólnie adres i port grupy multicastowej
Zadanie 2b: Zmodyfikuj poprzedni projekt:
QUdpSocket)bind (metodę na obiekcie, nie wywołanie systemowe) dla QHostAddress::AnyIPv4 i wybranego portu, QUdpSocket::ShareAddressjoinMulticastGroup pod wybrany adres IP grupy.connected ani disconnected (chyba że używany jest tryb pseudopołączeniowy; wtedy to pierwsze jest emitowane przy ustalaniu adresu zdanego)receiveDatagram lub readDatagram (rozmiar datagramu poznasz metodą pendingDatagramSize)writeDatagram na adres grupy
W Qt adres hosta reprezentuje klasa QHostAddress. Zmiana ciągu znaków (QString) na adres hosta: QHostAddress(str)
Uwaga: funkcje read, readAll i write dla QUdpSocket mogą być używane tylko w trybie pseudopołączeniowym.