Domino 9 und frühere Versionen > Entwicklung
Winsock und LotusScript
Hoshee:
Yoo,
die Function accept kenne ich nicht / hab' ich nicht gefunden.
Erzähl doch mal, was Du überhaupt vor hat!?!?!?
Gruss ...
Hoshee
Don Pasquale:
@Hoshee :
Ich möchte zwischen 2 Rechnern eine
SocketVerbindung aufbauen und eine
bestimmte Nachricht senden um dann
eine Antwort zu erhalten.
Das Senden klappt bereits und ein Antwort
wird auch gesendet, aber der Empfang
mittels getData klappt nicht.
Ciao
Don Pasquale
Hoshee:
Yoo,
ist getData eine eigene Function von Dir?
Normalerweise prüft man Periodisch mit der Function recv ob Daten angekommen sind um dann die Daten mit eben dieser Function auszulesen.
Declare Function recv Lib "wsock32.dll" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
Gruss ...
Hoshee
Don Pasquale:
@Hoshee
danke für den DECLARE String, kannst Du mir sagen wie Du den
erstellt hast ?
Hier meinen bisherigen Code :
Dim hSock As Long
Dim rCoda As Long
Dim strAntwort As String
StartWinsock("TEST")
hsock = ConnectSock("localhost",4444,"",0,0)
rCode = SendData(hSock, "1|153|0000000002" & Chr$(10) )
If DataComeIn(hSock) >= 1 Then 'Sind daten gekommen ?
strAntwort = GetData(hSock)
DataArraived = True
Print "GetDate Ergebnis:" & strAntwort
End If
Hier die Funktionen :
Public Function GetData(Byval Sock As Long) As String
Dim Tmpstr As String * 1048, Retval As Long
Retval = recv(Sock, Byval Tmpstr, Len(Tmpstr), 0&)
GetData = Left$(Tmpstr, Retval)
End Function
Public Function DataComeIn(Byval Sock As Long) As Long
Dim Tmpstr As String * 1
DataComeIn = recv(Sock, Byval Tmpstr, Len(Tmpstr), MSG_PEEK)
If DataComeIn = -1 Then
DataComeIn = WSAGetLastError()
End If
End Function
Public Function SendData(Byval Sock As Long, Byval Data As String) As Long
SendData = send(Sock, Byval Data, Len(Data), 0&)
End Function
Hoshee:
Yoo,
bzgl. der Functions benutze ich einen API-Viewer. Schau Dir mal den hier an: http://www.mentalis.org/agnet/appdown.shtml
Sind auch immer Beispiele dabei.
Was mir in Deinem Script fehlt ist ein Timer-Ereignis, welches regelmäßig nach eingehenden Daten ausschau hält. Nach Deinem Script (wenn es Sequentell abläuft!) schickst Du Daten raus und prüft dann gleich ab ob welche da sind. Selbst bei einer GigaBit-Anbindung ist das unwahrscheinlich. Also musst Du warten ;D
z.B.:
Private Sub Timer1_Timer()
If DataComeIn(hSock) >= 1 Then 'Sind daten gekommen ?
strAntwort = GetData(hSock)
DataArraived = True
Print "GetDate Ergebnis:" & strAntwort
End If
End Sub
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln