Du bist nicht angemeldet.

kevin89

Super Moderator

  • »kevin89« ist männlich
  • »kevin89« ist der Autor dieses Themas

Beiträge: 3 881

Dabei seit: 16. April 2008

Hilfreich-Bewertungen: 155

  • Private Nachricht senden

1

Donnerstag, 18. Februar 2010, 22:18

EasyTCPLib 1.0.0.2

Hallo,

wolltet ihr schonmal ein Internet/Netzwerkbasiertes Programm erstellen habt euch aber nicht an TCP/IP herangewagt? Hat irgendwas nicht geklappt, oder sucht ihr einfach eine komfortable Lib die euch Arbeit abnimmt? Dann ist meine EasyTCPLib das richtige:



War einiges an Arbeit. Wie man sieht, ist die Lib nicht gerade funktionsarm, aber lasst euch nicht abschrecken: Einfacher kann man mit TCP/IP nicht arbeiten.

Beschreibung

Die Klasse stellt zuerst einmal einen gewöhnlichen TCP-Client, -Server und -MultiServer bereit, sodass ihr das meiste selbst coden könnt. Sie nehmen euch nur die grundlegenden Sachen ab.

Zusätzlich habe ich aber den Managed-Namespace in dieser Lib entwickelt - dieser enthält die Klassen ManagedClient, ManagedServer und ManagedMultiServer - diese sind sehr komfortabel und besonders einfach zu nutzen. Es gibt vorgefertigte Methoden zum Senden und Empfangen von Zeichenfolgen, Bildern, Binärdaten und anderen Objekten (insofern serialisierbar), alle Events werden bereitgestellt usw.

Wichtig: Ihr müsst euch für eine Seite entscheiden - entweder beide Seiten Managed oder keine.

Beispiel

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Imports EasyTCPLib

Public Class someFrm
    Private WithEvents server As New Managed.ManagedServer(Net.IPAddress.Any, 8000) ' neuen server erstellen
    Private WithEvents cl As New Managed.ManagedClient ' neuen client erstellen

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        server.Start() ' server starten
        server.WaitForClientAsync() ' asynchron auf den client warten.
        ' server.StopExecution()
        cl.Connect("127.0.0.1", 8000) ' client verbindet -> server
    End Sub

    Private Sub server_ConnectionLost(ByVal sender As Object) Handles server.ConnectionLost
        MsgBox("verbindung wurde geschlossen") ' verbindung wurde geschlossen
    End Sub

    Private Sub server_WaitForClientCompleted(ByVal sender As Object) Handles server.WaitForClientCompleted
        ' verbindung angekommen. "testnachricht" von server an client senden
        server.Send("testnachricht")
    End Sub

    Private Sub cl_DataReceived(ByVal sender As Object, ByVal e As EasyTCPLib.Managed.DataReceivedArgs) Handles cl.DataReceived
        MsgBox(e.Value) ' nachricht vom server empfangen: "testnachricht"
        cl.Disconnect() ' verbindung danach schließen
    End Sub
End Class


Mergen, Namensnennung, Dekompilierung

Mergen ("einkompilieren") ist untersagt. Namensnennung ist nötig. Dekompilierung ist verboten.

Download

Hier (ZIP, 59 Kb)

Hinweis

Die Lib befindet sich im Beta-Status. Bitte alle Probleme, Auffälligkeiten usw. melden. Empfehlung also: Falls ihr die Lib nutzt, regelmäßig hier auf eine neue Versionen prüfen.

Viel Spaß damit,

LG

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »kevin89« (14. Juni 2010, 20:31)


Chrisber

Super Moderator

Beiträge: 634

Dabei seit: 28. Januar 2007

Hilfreich-Bewertungen: 244

  • Private Nachricht senden

2

Donnerstag, 18. Februar 2010, 22:41

Gib mir mehr nützliche Libs!
-> sieht nützlich aus ;)

Edit: Wie machst du eigt. immer diese netten Bilder?

Gruß
» Alle sagten: das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht.

kevin89

Super Moderator

  • »kevin89« ist männlich
  • »kevin89« ist der Autor dieses Themas

Beiträge: 3 881

Dabei seit: 16. April 2008

Hilfreich-Bewertungen: 155

  • Private Nachricht senden

3

Donnerstag, 18. Februar 2010, 22:50

Hi,

hehe :) die Bilder kannst du in Visual Studio per Rechtsklick -> Klassendiagramm anzeigen erzeugen und über Klassendiagramm -> Diagramm als Grafik exportieren als Bilddatei sichern.

LG

nikeee13

wegen des metrischen Systems

  • »nikeee13« ist männlich

Beiträge: 866

Dabei seit: 20. Februar 2009

Wohnort: Einbecker Bier!

Hilfreich-Bewertungen: 532

  • Private Nachricht senden

4

Freitag, 19. Februar 2010, 10:14

Sieht sehr schön aus! Vor allem der Managed-namespace wird vielen Leuten die arbeit erleichtern! :D

5/5

Tsuyo

Registrierter Benutzer

Beiträge: 804

Dabei seit: 10. Oktober 2009

Wohnort: k

Frühere Benutzernamen: m0nst3rkill3r

Hilfreich-Bewertungen: 257

  • Private Nachricht senden

5

Freitag, 19. Februar 2010, 10:53

Yeah, Nice.
Gefällt mir sehr gut, Vielen Dank :)

Werds nacher Arbeit mal austesten. Hab ich mal wieder ne Beschäftigung gefunden ^^

Zitat von »"http://forums.macrumors.com/showpost.php?s=9e0078570b2b62fd044cc1b13d212b09&p=4777525&postcount=1064"«

When talking about how apple cannot influence the future of computers, you also forgot to mention that the internet was created on a network of macs to start with. Thats why every online PeeCee has a MAC code. Even my PSP needs a MAC code to get online....
~2000€ für nen brauchbaren Mac sind imho 2100€ zu viel. - SamusTyp

jansteffen

progga in da house äh... forum ^^

  • »jansteffen« ist männlich

Beiträge: 120

Dabei seit: 2. Juni 2009

Wohnort: ERROR 404

Hilfreich-Bewertungen: 6

  • Private Nachricht senden

6

Freitag, 19. Februar 2010, 12:33

doofe frage: was is der unterschied zwischen normal und managed ^^
Du sagst Justin Bieber, Ich sage John O'Callaghan
Du sagst Miley Cyrus, Ich sage Guru Josh project
Du sagst Kesha, Ich sage Deadmau5
Du sagst Eminem, Ich sage Papa Roach

92% Kinder und Jugendliche hören Pop und Hiphop. Wenn der einer der 8% bist, der noch echte Musik hört, kopier dies in deine Signatur!

Chrisber

Super Moderator

Beiträge: 634

Dabei seit: 28. Januar 2007

Hilfreich-Bewertungen: 244

  • Private Nachricht senden

7

Freitag, 19. Februar 2010, 13:30

Zusätzlich habe ich aber den Managed-Namespace in dieser Lib entwickelt - dieser enthält die Klassen ManagedClient, ManagedServer und ManagedMultiServer - diese sind sehr komfortabel und besonders einfach zu nutzen. Es gibt vorgefertigte Methoden zum Senden und Empfangen von Zeichenfolgen, Bildern, Binärdaten und anderen Objekten (insofern serialisierbar), alle Events werden bereitgestellt usw.

Wichtig: Ihr müsst euch für eine Seite entscheiden - entweder beide Seiten Managed oder keine.


Lesen, dann fragen!
» Alle sagten: das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht.

yeti2078

Registrierter Benutzer

  • »yeti2078« ist männlich

Beiträge: 348

Dabei seit: 14. August 2007

Frühere Benutzernamen: gogogigo

Hilfreich-Bewertungen: 17

  • Private Nachricht senden

8

Freitag, 19. Februar 2010, 14:52

Nicht schlecht! Ist dir gelungen. :)


Ich hätte da aber einen "Fehler" gefunden, oder ich versteh die Funktion StopExecution falsch.
Möchte ich einen Managed Server starten und wieder beenden, weil zB keiner antwortet, (also StopExecution()) kommt es zu einer NullReferenceException:

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
  Private server As ManagedServer

	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    	server = New ManagedServer(Net.IPAddress.Any, 8000)

    	server.StartExecution()
    	server.WaitForClientAsync()
    	server.StopExecution()
	End Sub


Soll vielleicht ein noch nicht instanziierter ClientSockel/TcpClient geschlossen werden?


Außerdem:
Warum benennst du die Methoden "StartExecution" (irgendwie doppelt gemoppelt oder?) ^^



PS: Ist es möglich, dass die Klassendiagramme nicht in der Express Edition von Studio vorhanden ist?
Gruß yeti

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »yeti2078« (19. Februar 2010, 15:05)


kevin89

Super Moderator

  • »kevin89« ist männlich
  • »kevin89« ist der Autor dieses Themas

Beiträge: 3 881

Dabei seit: 16. April 2008

Hilfreich-Bewertungen: 155

  • Private Nachricht senden

9

Freitag, 19. Februar 2010, 15:31

Hi,

danke :) Problem gefixt. StartExecution heißt jetzt BeginExecution und EndExecution wurde zu EndExecution, besser so? ;)
Klassendiagramme lassen sich soweit ich weiß nicht in der Express-Version erstellen - weiß es aber nicht genau.

LG

yeti2078

Registrierter Benutzer

  • »yeti2078« ist männlich

Beiträge: 348

Dabei seit: 14. August 2007

Frühere Benutzernamen: gogogigo

Hilfreich-Bewertungen: 17

  • Private Nachricht senden

10

Freitag, 19. Februar 2010, 15:37

Zitat

StartExecution heißt jetzt BeginExecution und EndExecution wurde zu EndExecution, besser so? ;)
:D Eigentlich hat mich eher der Begriff "Execution" gestört: also warum nicht einfach "Start" und "Stop"?
Ist ja letztendlich auch egal...



Zitat

Klassendiagramme lassen sich soweit ich weiß nicht in der Express-Version erstellen
War auch zu erwarten. :(
Gruß yeti

kevin89

Super Moderator

  • »kevin89« ist männlich
  • »kevin89« ist der Autor dieses Themas

Beiträge: 3 881

Dabei seit: 16. April 2008

Hilfreich-Bewertungen: 155

  • Private Nachricht senden

11

Freitag, 19. Februar 2010, 15:55

Jetzt aber :D

BeginExecution -> Start
EndExecution -> Stop

LG

JeyBe

Registrierter Benutzer

  • »JeyBe« ist männlich

Beiträge: 460

Dabei seit: 24. April 2009

Wohnort: Berlin

Hilfreich-Bewertungen: 1

  • Private Nachricht senden

12

Sonntag, 9. Mai 2010, 22:15

Download tot ;(

Könntest du die Dll bitte noch mal irgendwo hoch laden??
Mit freundlichen Grüßen JeyBe

kevin89

Super Moderator

  • »kevin89« ist männlich
  • »kevin89« ist der Autor dieses Themas

Beiträge: 3 881

Dabei seit: 16. April 2008

Hilfreich-Bewertungen: 155

  • Private Nachricht senden

13

Sonntag, 9. Mai 2010, 22:24

Alle Downloads von mir sind noch einige Tage nicht erreichbar... solange Download hier.

  • »Firestorm« ist männlich

Beiträge: 275

Dabei seit: 14. November 2009

Hilfreich-Bewertungen: 8

  • Private Nachricht senden

14

Montag, 10. Mai 2010, 17:40

Um das Ding zu benutzen muss man sich einen offen Port machen, bzw. eine Portweiterleitung oder?

Mfg
Firestorm

progglord

Registrierter Benutzer

  • »progglord« ist männlich

Beiträge: 902

Dabei seit: 10. April 2009

Wohnort: Holzminden

Hilfreich-Bewertungen: 22

  • Private Nachricht senden

15

Montag, 10. Mai 2010, 18:30

Um das Ding zu benutzen muss man sich einen offen Port machen, bzw. eine Portweiterleitung oder?

Mfg
Firestorm

Wenn dein PC der Server sein soll ja. Aber wenn dein PC nur der Client sein soll nicht ;).

  • »Firestorm« ist männlich

Beiträge: 275

Dabei seit: 14. November 2009

Hilfreich-Bewertungen: 8

  • Private Nachricht senden

16

Montag, 10. Mai 2010, 18:33

ok dankeschon

Mfg
Firestorm

Dodo

Super Moderator

Beiträge: 4 961

Dabei seit: 5. Oktober 2008

Wohnort: Berlin

Hilfreich-Bewertungen: 586

  • Private Nachricht senden

17

Mittwoch, 12. Mai 2010, 07:33

Ich lad mir erst Version 127.0.0.1 herunter xD
ne kleiner schwerz am Rande aber die Versionsnummer ließ mich das sofort irgendwie assoziieren *g*

Aufjedenfall top arbeit, hoffe mal jetzt werden die Fragen wieder weniger zu TCP ("kann ich nicht", "versteh ich nicht"). Voraussetzung ist das die natürlich Suchen, aber immerhin kann man ja den nun einen Link in rachen schmeißen.
KEINE VB-FRAGEN ÜBER PN STELLEN!

Wenn du einem Hungernden einen Fisch schenkst, wird er morgen wieder hungrig sein, bringst du ihm das Fischen bei, wird er nie wieder hungrig sein.

Alle Copy & Paste Geber und Forderer, nehmt euch dies zu Herzen!

  • »Firestorm« ist männlich

Beiträge: 275

Dabei seit: 14. November 2009

Hilfreich-Bewertungen: 8

  • Private Nachricht senden

18

Mittwoch, 12. Mai 2010, 18:48

Noch eine Frage:
Angenommen der User sitzt hinter einer Firewall. Dann müsste er doch eine Portweiterleitung auf seinen PC einrichten oder?

Mfg
Firestorm

jvbsl

Noob

  • »jvbsl« ist männlich

Beiträge: 7 206

Dabei seit: 7. April 2010

Hilfreich-Bewertungen: 397

  • Private Nachricht senden

19

Mittwoch, 12. Mai 2010, 18:58

@Firestorm: kommt darauf an, ob er Server oder Client sein soll...
Ich wollte auch mal ne total überflüssige Signatur:
---Leer---

  • »Firestorm« ist männlich

Beiträge: 275

Dabei seit: 14. November 2009

Hilfreich-Bewertungen: 8

  • Private Nachricht senden

20

Mittwoch, 12. Mai 2010, 21:25

Eigentlich hatte ich an beide (Client und Server) gedacht.

Mfg
Firestorm

Ähnliche Themen

Verwendete Tags

EasyTCPLib, internet, Netzwerk, tcp, vb.net

Social Bookmarks