arduno
Anmeldungsdatum: 12.05.2011 Beiträge: 252
|
Verfasst am: 01.03.2019, 13:04 Titel: Client/Server durch Tastendruck starten. |
|
|
Hallo, guten Tag.
Wie kann ich bitte die ganze Server/Client-Geschichte durch Tastendruck
starten und nicht gleich wenn ich die EXE starte ?
Danke.
gruss
Code: |
#Include Once "TSNE_V3.bi"
#Include once "fbgfx.bi"
#Include once "vbcompat.bi"
#include once "timer.bi"
Using FB
screenres 280,200,32,1,4
WindowTitle "krpc-send-5000"
ScreenControl SET_WINDOW_POS, 10, 460
TYPE connectionType
AS UINTEGER G_Server, G_Client
AS Integer isServer
AS STRING IP
DECLARE CONSTRUCTOR(Typ AS STRING)
DECLARE DESTRUCTOR
DECLARE SUB hosten
DECLARE SUB connecten
DECLARE SUB beenden
DECLARE SUB senden(Message AS STRING)
END Type
declare Sub timer_handler( byval id as integer )
dim Shared as CTimer ptr t1
Dim SHARED AS Integer partnerID,zahl,thr1
Dim Shared As Single thr
Dim Shared As Integer x, y, buttons
Declare SUB TSNE_Disconnected(BYVAL V_TSNEID AS UINTEGER)
DECLARE SUB TSNE_Connected(BYVAL V_TSNEID AS UINTEGER)
DECLARE SUB TSNE_NewData(BYVAL V_TSNEID AS UINTEGER, BYREF V_Data AS STRING)
DECLARE SUB TSNE_NewConnection(BYVAL V_TSNEID AS UINTEGER, BYVAL V_RequestID AS Socket, BYVAL V_IPA AS STRING)
DECLARE SUB TSNE_NewConnectionCanceled(BYVAL V_TSNEID AS UINTEGER, BYVAL V_IPA AS STRING)
CONSTRUCTOR connectionType(Typ AS STRING)
IF Typ = "Server" THEN
isServer = 1
hosten
ELSEIF Typ = "Client" THEN
IP = "127.0.0.1"
connecten
ELSE
IP = Typ
connecten
ENDIF
END CONSTRUCTOR
DESTRUCTOR connectionType
beenden
END DESTRUCTOR
SUB connectionType.beenden
IF isServer THEN
TSNE_Disconnect(G_Server) 'Server beenden
TSNE_WaitClose(G_Server) 'Warten bis Server beendet ist
ELSE
TSNE_Disconnect(G_Client) 'Client beenden
TSNE_WaitClose(G_Client) 'Warten bis Client beendet ist
ENDIF
END SUB
SUB connectionType.hosten
DIM BV AS INTEGER
BV = TSNE_Create_Server(G_Server, 5000, 1, @TSNE_NewConnection, @TSNE_NewConnectionCanceled) 'Server erstellen
IF BV = TSNE_Const_NoError THEN
PRINT "Server bereit"
ELSE
PRINT "Fehler: " & BV
ENDIF
END SUB
SUB connectionType.connecten
DIM BV AS INTEGER
BV = TSNE_Create_Client(G_Client, IP, 5000, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData) 'Client erstellen
IF BV = TSNE_Const_NoError THEN
PRINT "Suche Server"
ELSE
PRINT "Fehler: " & BV
ENDIF
END SUB
SUB connectionType.senden(Message AS STRING)
TSNE_Data_Send(partnerID, Message)
END SUB
SUB TSNE_Disconnected(BYVAL V_TSNEID AS UINTEGER)
'Handling, wenn disconnected wird
PRINT V_TSNEID & " wurde disconnectet"
END SUB
SUB TSNE_Connected(BYVAL V_TSNEID AS UINTEGER)
'neue Verbindung wurde aufgebaut
PRINT "Nun mit " & V_TSNEID & " verbunden"
partnerID = V_TSNEID
END SUB
SUB TSNE_NewConnection(BYVAL V_TSNEID AS UINTEGER, BYVAL V_RequestID AS Socket, BYVAL V_IPA AS STRING)
'Wenn versucht wird, eine neue Verbindung herzustellen
'Nur wichtig für den Server
PRINT "Ein Client versucht zu verbinden"
DIM XNewTSNEID AS UINTEGER
DIM XReturnIPA AS STRING
'Akzeptieren der Verbindung
TSNE_Create_Accept(V_RequestID, XNewTSNEID, XReturnIPA, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData)
END SUB
SUB TSNE_NewConnectionCanceled(BYVAL V_TSNEID AS UINTEGER, BYVAL V_IPA AS STRING)
'Verhalten, wenn abgelehnt wird
PRINT "Verbindung wurde abgelehnt"
END SUB
SUB TSNE_NewData(BYVAL V_TSNEID AS UINTEGER, BYREF V_Data AS STRING)
PRINT V_Data
END Sub
Dim Shared AS connectionType myClient = "Client"
t1 = new CTimer( 100, @timer_handler, 1 )
t1->on()
Line (10,40)-(40,60), &h00ff00, Bf
Line (10,65)-(40,85), &hff0000, Bf
Line (60,40)-(90,60), &h0000ff, Bf
thr=0
thr1=0
Locate 4,3
Print thr1
Do
SLEEP 1
GetMouse (x, y, , buttons)
If Point(x,y)=&h0000ff And buttons And 1 Then
myClient.senden("stage,0")
Sleep 200
EndIf
If Point(x,y)=&hff0000 And buttons And 1 Then
thr=thr-0.1
thr1=thr1-1
If thr < 0 Then
thr=0
thr1=0
EndIf
Locate 4,3
Print " "
Locate 4,3
Print thr1
myClient.senden("throttle,"+Str(thr))
Sleep 200
EndIf
If Point(x,y)=&h00ff00 And buttons And 1 Then
thr=thr+0.1
thr1=thr1+1
If thr > 1 Then
thr=1
thr1=10
EndIf
Locate 4,3
Print " "
Locate 4,3
Print thr1
myClient.senden("throttle,"+Str(thr))
Sleep 200
End If
Loop Until InKey = CHR(27)
myClient.beenden
sub timer_handler( byval id as integer )
myClient.senden("d,0")
end Sub
|
|
|