You are not logged in.

Rokky

Beginner

  • "Rokky" started this thread

Posts: 4

Date of registration: Dec 28th 2008

  • Send private message

1

Saturday, February 7th 2009, 6:28pm

Multi Winsock

Ist es mit Jabaco möglich mehrer User auf meinen Server zu lassen.

wenn ja könnte mir jemand Beispiel Codes geben. Danke !

marbel1990

Beginner

Posts: 9

Date of registration: Feb 14th 2009

  • Send private message

2

Sunday, February 15th 2009, 12:12pm

Morgen,

Genau dieses Problem habe ich auch... In vb6 habe ich es früher über Index gelöst (winsock1(Index).senddata etc.)

leider ist dies bei Jabaco nicht möglich wie ich gesehen habe (?!) weiß jemand einen ausweg wie wir bei Jabaco dem Winsock-Element einen Index verpassen oder dies anders lösen können?

A1880

Intermediate

  • "A1880" is male

Posts: 500

Date of registration: Jan 1st 2009

Location: Hanover, Germany

Occupation: Software Engineer

Hobbies: Hilbert Curves

  • Send private message

3

Sunday, February 15th 2009, 1:14pm

Lösung durch Class Overloading

Hi,
ein ähnliches Problem hat man, wenn man mehrere gleichartige Controls in einer Form behandeln will.

Eine Lösung ist, die Basisklasse durch eine abgeleitete Subklasse zu überschreiben und deren Eventhandler anzupassen.

Wie das geht, steht unter diesem Link.

Wenn es nur um eine kleine Zahl von Verbindungen geht, kann man pro Verbindung ein Winsock-Objekt anlegen, muss dann allerdings pro Objekt jeden Event-Handler (zumindest als Hülle) einzeln programmieren.

Gruß!

A1880

This post has been edited 1 times, last edit by "A1880" (Feb 15th 2009, 1:36pm)


marbel1990

Beginner

Posts: 9

Date of registration: Feb 14th 2009

  • Send private message

4

Sunday, February 15th 2009, 9:31pm

Hast du / einer villeicht ein beispielcode für das Winsock element?

A1880

Intermediate

  • "A1880" is male

Posts: 500

Date of registration: Jan 1st 2009

Location: Hanover, Germany

Occupation: Software Engineer

Hobbies: Hilbert Curves

  • Send private message

5

Sunday, February 15th 2009, 11:15pm

kein Beispiel bisher ...

Hi,
leider kann ich kein Beispiel in Jabaco bieten. Ich habe das bisher nur in C++ gemacht und dazu Microsoft-Beispiele aus MSDN abgewandelt.
Vielleicht hilft auch dieser Artikel.

Hier ist eine Implementation in Java, die man vermutlich gut auf Jabaco portieren kann.

Die Herausforderung bei Multi-Server bzw. Multi-Threaded Winsock besteht darin, dass man pro ankommendem TCP/IP-Request einen neuen Thread aufmacht. Insgesamt hat man also einen Haupt-Thread, der auf neue Anfragen wartet und pro aktivem Socket einen separaten Thread. Um das hinzukriegen, muss man sich nicht nur mit TCP/IP- und Winsock-Programmierung sondern auch mit Multi-Threading auskennen bzw. anfreunden.

Das Multi-Threading erfordert, dass alle Zugriffe auf gemeinsame Variable gegeneinder verriegelt werden. Außerdem kann man Probleme bekommen, wenn einzelne Aufrufe bzw. Methoden nicht "thread-safe" sind, d.h. fehlerhaft arbeiten, sobald sie von mehreren Threads parallel aufgerufen werden. Sämtliche Threads müssen auch zuverlässig terminiert werden, wenn das Gesamtprogramm enden muss oder soll. Auch die Fehlerbehandlung ist nicht trivial. Jabaco bietet "synchronized" Methoden, die aus parallelen Threads aufgerufen werden können, ohne sich in die Quere zu kommen.

Ich sollte noch erwähnen, dass man einen Multi-Server auch mit einem einzigen Thread ("single-threaded") realisieren kann. Dann muss dieser Thread allerdings in der Lage sein, auf Ereignisse mehrerer/vieler Sockets gleichzeitig zu warten und diese dann hintereinander abzuarbeiten. Im Jabaco-Winsock habe ich dazu keinen Mechanismus gesehen.

Viel Erfolg!

A1880

This post has been edited 2 times, last edit by "A1880" (Feb 15th 2009, 11:33pm)


marbel

Unregistered

6

Monday, February 16th 2009, 5:56pm

hmm das ist ein wenig blöd gelöst...

wenn ich meinen vb6 mit verschiedenen index habe, kann ich mit jabaco nicht einfach ein winsock ohne index nutzen und zu dem verbinden? bzw. gehen tut es, habe ich probiert jedoch kann ich nichts senden... und er bricht die verbindung zunm server auch ab... also vom prinzip her



winsock1.senddata("Daten") sendet in vb6 daten an einen server, bei jabaco sendet er da leider nichts zum server...

Similar threads

Rate this thread
WoltLab Burning Board