AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
22.09.21 - 20:27:29
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Domino 9 und frühere Versionen
| |-+  Entwicklung (Moderatoren: Axel, eknori, Hoshee, ata, Thomas Schulte, koehlerbv)
| | |-+  Winsock und LotusScript
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Winsock und LotusScript  (Gelesen 37061 mal)
Don Pasquale
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1390

Don Pasquale


WWW
« am: 12.06.03 - 11:00:34 »

Hallo Leute,

hat von Euch schon jemand eine Socket Verbindung
mit LotusScript aufgebaut ?


bytheway :Hat da jemand eine funktionsfähige Library ?

Gruß

Don Pasquale

« Letzte Änderung: 12.06.03 - 12:14:41 von Don Pasquale » Gespeichert
Till_21
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 708


I love Germany


« Antworten #1 am: 12.06.03 - 11:49:17 »

habe das hier mal ausgegraben ->
hier wird ein 'ping' ueber eine socketverb gemacht :

viel spass mit dem code...
(ohne gewaehr - ist nicht auf meinen mist gewachsen)

gruss
------------------------------------------------------------------------
Gespeichert
Don Pasquale
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1390

Don Pasquale


WWW
« Antworten #2 am: 12.06.03 - 12:19:19 »

Vielen Dank,
aber ein Ping hilft mir nicht. :-)
Ciao
Don Pasquale
Gespeichert
Hoshee
Administrator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 687


Try To Be Mensch ...


WWW
« Antworten #3 am: 12.06.03 - 12:59:50 »

Yoo,

ich habe mal damit rumgespielt.
Schau mal in der Sandbox http://www-10.lotus.com/ldd/sandbox.nsf/ecc552f1ab6e46e4852568a90055c4cd/9e752a60b6f902c7852568ef006b4ad1?OpenDocument&Highlight=0,ftp

Gruss ...

Hoshee
Gespeichert

Detlef

-> Syslords Solutions
*************************************
Wer dem Chef in den Hintern kriecht, muß damit rechnen, daß er ihm eines Tages zum Hals heraushängt
Don Pasquale
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1390

Don Pasquale


WWW
« Antworten #4 am: 12.06.03 - 13:48:35 »

@Hoshee:
Danke, aber das ist es leider auch nicht.

Anderer Weg :

Wie komme ich an die nötigen Declare Zeilen die in Lotus einfügen muß, um das Control korrekt anzusprechen ?

Declare Function accept Lib "wsock32.dll" (Byval s As Long, addr As sockaddr, addrlen As Long) As Long

Ciao

Don Pasquale
Gespeichert
Hoshee
Administrator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 687


Try To Be Mensch ...


WWW
« Antworten #5 am: 12.06.03 - 14:24:28 »

Yoo,

die Function accept kenne ich nicht / hab' ich nicht gefunden.
Erzähl doch mal, was Du überhaupt vor hat!?!?!?

Gruss ...

Hoshee
Gespeichert

Detlef

-> Syslords Solutions
*************************************
Wer dem Chef in den Hintern kriecht, muß damit rechnen, daß er ihm eines Tages zum Hals heraushängt
Don Pasquale
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1390

Don Pasquale


WWW
« Antworten #6 am: 12.06.03 - 15:55:36 »

@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
Gespeichert
Hoshee
Administrator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 687


Try To Be Mensch ...


WWW
« Antworten #7 am: 13.06.03 - 07:54:36 »

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
Gespeichert

Detlef

-> Syslords Solutions
*************************************
Wer dem Chef in den Hintern kriecht, muß damit rechnen, daß er ihm eines Tages zum Hals heraushängt
Don Pasquale
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1390

Don Pasquale


WWW
« Antworten #8 am: 13.06.03 - 08:00:36 »

@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
« Letzte Änderung: 13.06.03 - 08:19:17 von Don Pasquale » Gespeichert
Hoshee
Administrator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 687


Try To Be Mensch ...


WWW
« Antworten #9 am: 13.06.03 - 08:20:47 »

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  Grin

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
Gespeichert

Detlef

-> Syslords Solutions
*************************************
Wer dem Chef in den Hintern kriecht, muß damit rechnen, daß er ihm eines Tages zum Hals heraushängt
Hoshee
Administrator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 687


Try To Be Mensch ...


WWW
« Antworten #10 am: 13.06.03 - 08:25:28 »

Yoo nochmal,

unter VB gibt es noch das Ereignis DataArrival.
Keine Ahnung ob mal das auch in LS ansprechen kann Huh

Gruss ...

Hoshee
Gespeichert

Detlef

-> Syslords Solutions
*************************************
Wer dem Chef in den Hintern kriecht, muß damit rechnen, daß er ihm eines Tages zum Hals heraushängt
Don Pasquale
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1390

Don Pasquale


WWW
« Antworten #11 am: 13.06.03 - 09:26:17 »

@Hoshee
Der API Viewer ist cool, vielen Dank

Die meisten Socket Funktionen die dort dokumentiert werden, greifen aber auf die WS2_32.DLL zu, während ich noch die wsock32.dll nutze.

Mein aktueller Code, der auch nicht funktioniert :

Ich habe nun eine DO LOOP WHILE Schleife
eingebaut, sollte das nicht auch funktionieren ?

   Dim hSock As Long
   Dim rCode As Long
   Dim strAntwort As String
   Dim i As Integer
   StartWinsock("TEST")
   hsock = ConnectSock("localhost",4444,"TEST",0,1)   
   rCode = SendData(hSock, "1|153|0000000002" & Chr$(10)  )
   
   Dim DataArrived As Integer
   DataArrived = 0
   
   Do
      If DataComeIn(hSock) >= 1 Then 'Sind daten gekommen ?
         
         strAntwort = GetData(hSock)
         If strAntwort <> "" Then
            ergebnis$ = strAntwort
            DataArrived = 1
         End If
         
          ' Print "GetDate Ergebnis:" & strAntwort
      End If
      Print " DataArrived : " & DataArrived
   Loop   While DataArrived <> 1
   
   Print "Ergebnis: " & ergebnis$
Gespeichert
Hoshee
Administrator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 687


Try To Be Mensch ...


WWW
« Antworten #12 am: 13.06.03 - 09:39:15 »

Yoo,

hast Du den API-Viewer oder den API-Guide?

Zum LOOP: Das Ding frisst natürlich Resourcen. Mit einem Timer bist Du da besser dran.
Hast Du denn schon mal mit einem Sniffer geprüft, ob wirklich Daten ankommen?

Gruss ...

Hoshee


Gespeichert

Detlef

-> Syslords Solutions
*************************************
Wer dem Chef in den Hintern kriecht, muß damit rechnen, daß er ihm eines Tages zum Hals heraushängt
Don Pasquale
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1390

Don Pasquale


WWW
« Antworten #13 am: 13.06.03 - 10:05:06 »

@Hoshee

Timer, wie funktioniert ein Timer ?

Aber mal davon abgesehen dass es Ressourcen frisst,
es empfängt nichts.

Sniffer ,
hab ich auch noch nie benutzt, aber ich mach mich kundig.

Gruß

Don Pasquale
Gespeichert
Hoshee
Administrator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 687


Try To Be Mensch ...


WWW
« Antworten #14 am: 13.06.03 - 10:41:07 »

Yoo,

zwei Sachen sind mir in Deinem Code noch aufgefallen:

Code:
 
StartWinsock("TEST")
hsock = ConnectSock("localhost",4444,"TEST",0,1)

Die Functionen "StartWinsock" und "ConnectSock" hast Du? Und warum connectest Du auf localhost? Bist Du sicher, das Du eine Verbindung bekommst? Ein SendData geht auch locker ins leere, wenn keine Verbindung besteht! Und ich entdecke in Deinem Code keine Abfrage auf eine (nicht-)bestehende Verbindung.

Zum Timer (NotesTimer class): Represents a mechanism for triggering an event every fixed number of seconds.
Schau Dir mal die Hilfe im Designer an. Da ist die Klasse beschrieben.

Leider habe ich auf keinem meiner Rechner eine wsock32.dll nur die ws2_32.dll. Kann also leider nicht testen.

Gruss ...

Hoshee


Gespeichert

Detlef

-> Syslords Solutions
*************************************
Wer dem Chef in den Hintern kriecht, muß damit rechnen, daß er ihm eines Tages zum Hals heraushängt
Don Pasquale
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1390

Don Pasquale


WWW
« Antworten #15 am: 13.06.03 - 11:19:04 »

@Hoshee

Auf meinem Rechner ist zu Testzwecken ein Dienst eingerichtet, der auf dem Port 4444 lauscht. Dort im Protokoll steht, dass er eine
Anfrage bekommen hat. Wenn das Prinzip funktioniert wird aus localhost natürlich ein anderer Rechner.


Die Funktionen habe ich ConnectSock ist ein wenig länger, ist im Prinzip die Funktion Connect.

Public Function StartWinsock(sDescription As String) As Integer
   Dim StartupData As WSADataType
   If Not WSAStartedUp Then
      If Not WSAStartup(&H101, StartupData) Then
         WSAStartedUp = True
         sDescription = StartupData.szDescription
      Else
         WSAStartedUp = False
      End If
   End If
   StartWinsock = WSAStartedUp
End Function

Gespeichert
Hoshee
Administrator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 687


Try To Be Mensch ...


WWW
« Antworten #16 am: 13.06.03 - 12:28:17 »

Yoo,

irgendwie komm ich nicht weiter  Tongue

Habe auf kein Tool mit dem ich das Testen kann.
Ich mach mir noch mal Gedanken. Vielleicht fällt in der Zwischenzeit jemandem was ein ...

Gruss ...

Hoshee
Gespeichert

Detlef

-> Syslords Solutions
*************************************
Wer dem Chef in den Hintern kriecht, muß damit rechnen, daß er ihm eines Tages zum Hals heraushängt
notes_andy
Junior Mitglied
**
Offline Offline

Geschlecht: Männlich
Beiträge: 51


Ich liebe dieses Forum!


WWW
« Antworten #17 am: 21.02.13 - 15:26:08 »

Hallo

Ich habe auch das Problem beim lesen der Daten. Hat das schon jemand geschafft. Oder funktioniert das mit Lotus Script nicht.

DANKE FÜR DIE HILFE

glg. Andreas
Gespeichert
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6620


Geht nicht, gibt's (fast) nicht... *g*


WWW
« Antworten #18 am: 21.02.13 - 17:25:36 »

na ja... der thread war ja nur 10 Jahre alt...
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: