Domino 9 und frühere Versionen > Entwicklung

Winsock und LotusScript

<< < (2/4) > >>

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