mirror of
https://github.com/mappu/miqt.git
synced 2025-04-27 15:40:21 +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/qt6-multimedia/qt6-multimedia
|
||||
examples/libraries/qt6-network/qt6-network
|
||||
examples/libraries/qt6-network-sctp/qt6-network-sctp
|
||||
examples/libraries/qt6-webengine/qt6-webengine
|
||||
examples/libraries/restricted-extras-charts6/restricted-extras-charts6
|
||||
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