Autor Beitrag
JDKDelphi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 115
Erhaltene Danke: 22

WIN2000, XP, WIN 7 , UNIX, LINUX
Assembler für (Z8x, 68xxx,R6000,Intel), DELPHI 6 Enterprise, MAGIC eDeveloper V9+V10, C++, C#,VB, .NET, zertifizierter iBOLT-Programmierer
BeitragVerfasst: Mo 19.08.13 14:41 
Hallo liebes Forum,

ich hab' mal wieder ein kleines Problem:

Ich möchte zwei eigenständige Rechner mit einem WCF-Service verbinden und zwar direkt mit einem Netzwerkkabel.


Der Grund:

Die Rechner sollen sich im Schaltschrank "unterhalten", d.h. Statusmeldungen austauschen.
Ich brauche das, um zwei gleiche Bildverarbeitungsprogramme(14 Kameras) zu verbinden, die nur mit einer SPS kommunizieren.


Auf einem Rechner läuft die Kommunikation zwischen zwei Programmen problemlos, jedoch nicht zwischen zwei Rechnern.

In den einschlägigen Tutorials wird immer nur "...LocalHost:Portnummer.." benutzt, ich jedoch wollte entweder
per "net.tcp://Rechnername:Port/Dienstname" kommunizieren oder per IP-Beispiel "net.tcp://192.168.127.50:8000/FirstService"

Vielleicht hat jemand einen Tipp, wie man so etwas realisiert.


Ich hänge mal eine Zip-File dran, wo Server und Client als Sourcecode auf dem "net.tcp://Localhost:8000" funktioniert.
Auch mit IP "net.tcp://192.168.127.50:8000/FirstService" ging es..
Das Ganze wurde mit C#2010 Express erstellt. Der Sourcecode ist auch nicht auf meinem "Mist" gewachsen, sondern im Internet gefunden und leicht von mir verändert worden.

Ich kann das ganze peer2peer mit 2 Laptops(XP) testen.


Besten Dank im voraus für Eure Mühe.
Vielleicht geht's ja ganz einfach...


Gruß

JDKDELPHI
Einloggen, um Attachments anzusehen!
_________________
Wo andere aufhören, fange ich erst an..
Tilo
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Di 20.08.13 11:16 
Hallo JDKDelphi,

Ein paar Fragen zur Problemeingrenzung:
Wie sind die beiden Rechner verbunden?
Wenn sie direkt miteinander verbunden sind benötigst Dur ein "CrossOver"Kabel.

Sind auf beiden Rechner die Ports freigeschalten? (ein und ausgehend!)

Können die Rechner überhaupt aufeinander zugreifen?
Ein einfacher Test: auf beiden Rechner je einen Netzwerkordner freigeben und über diese Daten austauschen.

Da ich aktuell den Quellcode nicht angucken kann, war es dann auch erstmal.

Beste Grüße,
Tilo
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4121
Erhaltene Danke: 853

Win10
C#, C++ (VS 2015/17)
BeitragVerfasst: Di 20.08.13 11:57 
Hallo Tilo,

bei heutigen Rechnern (d.h. mit 1GBit (1000BASE-T) Ethernet-Controllern) benötigt man kein CrossOver-Kabel mehr. Ich wurde vor kurzem von einem Kollegen darüber aufgeschlaut, s.a. Why do we not need a crossover cable if one computer has a Gigabit ethernet card? ;-)
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4444
Erhaltene Danke: 914


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 20.08.13 12:01 
Zitat:
scf = new ChannelFactory<Contract.IServiceContract>(ntb, "net.tcp://localhost/Testservice:8000");


Der Port gehört zum Rechnernamen nicht zum Pfad.

Ich gehe mal davon aus das deine Firewall läuft und standardmäßig die 8000 nicht (wenn du den denn auch verwenden würdest im Moment geht das vermutlich über 808) durchlässt. Du solltest auch keinen Port nehmen der schon offiziell vergeben ist.