mirror of
https://github.com/mappu/miqt.git
synced 2025-04-27 23:50:22 +00:00
sctp: add qt6 qsctpserver + qsctpsocket example
This commit is contained in:
parent
1fe7c9cc02
commit
1887b2e542
1
.gitignore
vendored
1
.gitignore
vendored
@ -42,6 +42,7 @@ examples/libraries/qt-webengine/qt-webengine
|
|||||||
examples/libraries/qt-webkit/qt-webkit
|
examples/libraries/qt-webkit/qt-webkit
|
||||||
examples/libraries/qt6-multimedia/qt6-multimedia
|
examples/libraries/qt6-multimedia/qt6-multimedia
|
||||||
examples/libraries/qt6-network/qt6-network
|
examples/libraries/qt6-network/qt6-network
|
||||||
|
examples/libraries/qt6-network-sctp/qt6-network-sctp
|
||||||
examples/libraries/qt6-webengine/qt6-webengine
|
examples/libraries/qt6-webengine/qt6-webengine
|
||||||
examples/libraries/restricted-extras-charts6/restricted-extras-charts6
|
examples/libraries/restricted-extras-charts6/restricted-extras-charts6
|
||||||
examples/libraries/restricted-extras-qscintilla/restricted-extras-qscintilla
|
examples/libraries/restricted-extras-qscintilla/restricted-extras-qscintilla
|
||||||
|
69
examples/libraries/qt6-network-sctp/main.go
Normal file
69
examples/libraries/qt6-network-sctp/main.go
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
qt "github.com/mappu/miqt/qt6"
|
||||||
|
"github.com/mappu/miqt/qt6/network"
|
||||||
|
"github.com/mappu/miqt/qt6/network/sctp"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
|
||||||
|
qt.NewQApplication(os.Args)
|
||||||
|
|
||||||
|
// Set up server
|
||||||
|
// `````````````
|
||||||
|
|
||||||
|
localAddr := network.NewQHostAddress7(network.QHostAddress__LocalHost)
|
||||||
|
|
||||||
|
srv := sctp.NewQSctpServer()
|
||||||
|
if !srv.ListenWithAddress(localAddr) {
|
||||||
|
log.Fatal("SCTP server: Listen failure")
|
||||||
|
}
|
||||||
|
|
||||||
|
srv.OnNewConnection(func() {
|
||||||
|
log.Println("SCTP server: got connection")
|
||||||
|
recv := srv.NextPendingDatagramConnection() // QSctpSocket
|
||||||
|
|
||||||
|
recv.OnChannelReadyRead(func(channel int) {
|
||||||
|
dg := recv.ReadDatagram()
|
||||||
|
log.Printf("SCTP server: channel %v: received message %q", channel, string(dg.Data()))
|
||||||
|
|
||||||
|
// Success, experiment over
|
||||||
|
os.Exit(0)
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
localPort := srv.ServerPort()
|
||||||
|
|
||||||
|
// Set up client
|
||||||
|
// `````````````
|
||||||
|
|
||||||
|
c := sctp.NewQSctpSocket()
|
||||||
|
|
||||||
|
c.OnErrorOccurred(func(param1 network.QAbstractSocket__SocketError) {
|
||||||
|
log.Println("SCTP client: error")
|
||||||
|
})
|
||||||
|
|
||||||
|
c.OnConnected(func() {
|
||||||
|
log.Println("SCTP client: connected, sending message...")
|
||||||
|
|
||||||
|
dg := network.NewQNetworkDatagram2([]byte("i am the client sending a message"))
|
||||||
|
ok := c.WriteDatagram(dg)
|
||||||
|
if !ok {
|
||||||
|
log.Fatalf("WriteDatagram failure")
|
||||||
|
}
|
||||||
|
log.Println("SCTP client: message sent OK")
|
||||||
|
})
|
||||||
|
|
||||||
|
log.Println("SCTP client: connecting...")
|
||||||
|
c.ConnectToHost2(localAddr, localPort)
|
||||||
|
|
||||||
|
// Blocking event loop
|
||||||
|
// ```````````````````
|
||||||
|
|
||||||
|
qt.QApplication_Exec()
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user