Announcement

Collapse
No announcement yet.

TCP-Verbindung PocketPC <-> Windows XP

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TCP-Verbindung PocketPC <-> Windows XP

    Hallo Leute,

    ich habe eine VB.NET Anwendung auf einem Windows XP PC und eine auf einem Pocket PC laufen. Diese beiden Anwendungen sollen sich über einen TCP-Verbindung unterhalten.

    Wenn ich den Pocket PC jetzt in die Cradle stecke und per Active Sync die Verbindung hergestellt wird und ich versuche, die Datenübertragung zu starten, bekomme ich die Fehlermeldung, dass "Die Verbindung nicht aufgebaut werden kann, weil der Zielcomputer die Verbindung verweigert".

    Zwei Anwendungen, die nur auf dem XP PC laufen, können sich problemlos über die TCP-Verbindung verständingen.

    Ich habe schon alles ausprobiert, aber bekommen keine Verbindung vom PDA aus zustande.

    Hat jmd. einen Ahnung, wie ich diese Problem beheben kann?

    Gruß
    Daniel

  • #2
    Hallo,<br>
    bei XP fällt mir spontan immer SP2 und die Firewall ein. MS hat da die Standardeinstellungen etwas radikaler gewählt. Versuch mal einen Verbindungsaufbau mit deaktivierter FW (=> Systemeinstellungen). Falls es dann funktioniert, muss Du nur die von Deiner App. verwendeten Ports in der FW freischalten.<br>
    <br>
    Gruß<br>
    Ulric

    Comment


    • #3
      Hallo Ulrich,

      vielen Dank für die Antwort!

      Die Firewall habe ich schon komplett abgeschaltet, leider kommt trotzdem die gleiche Fehlermeldung.

      Gruß
      Danie

      Comment


      • #4
        Hallo Daniel, nun erklär mal genau,
        wie Du die Netzwerkverbindung auf beiden Rechenern öffnest.<br><br>
        Ich habe mit C# auch auf beiden Rechnern eine Verbindung aufgebaut. Generell ist es so, dass der PC(XP) als Server laufen muss, und der Pocket-PC sich dann zu dem PC verbindet, über Rechnername und Port.<br><br>
        Bei mir lief die Variante z.B. nicht wenn ich auf XP dem Server die IP-Adresse 127.0.0.1 (lokalhost) zugewiesen habe. Mit der Adresse 192.168.0.30(mit der Adresse ist der Rechner im Netz ansprechbar) lief es sofort.<br><br>
        Wichtig ist, dass auf XP der Server laufen muss
        und der PPC diesen dann anspricht. Das geht mit System.Net.Sockets.Socket.

        Gruß Tom

        Comment


        • #5
          Hallo Tom!

          Genauso habe ich es auch vor,
          der PocketPC baut die Verbindung zum XP PC auf.

          Ich habe schon verschiedenes mit den IP-Adressen ausprobiert, aber es hat nie gekappt.

          Komisch ist nur, dass der Pocket PC über Active Sync scheinbar eine IP-Adresse der Form 192.168.1.xxx bekommt, mein DHCP-Server im Netz aber IP-Adressen der Form 192.168.0.xxx vergibt....

          Ich arbeite beim Verbindungsaufbau mit System.Net.Sockets.

          Gruß
          Danie

          Comment


          • #6
            Hallo Daniel,<br>
            hat Deine XP-Rechner denn einen Rechnernamen zugewieden bekommen?<br><br>
            Das Socket, dass du auf dem Pocket-PC öffnest erwartet doch den Rechnername und einen Port, damit es sich dorthin verbinden kann.<br><br>
            Schick doch mal'n paar Codeausschnitte von Dir. Mit den Informationen, die Du mir bis jetzt gegeben hast kann ich auch nicht mehr sagen.

            Gruß Tom

            Comment


            • #7
              Hi Tom,

              ich hab immer als Rechnernamen die IP-Adresse genommen, allerdings als String, z.B. "127.0.0.1". Das klappt bei den beiden Programm die auf dem Rechner laufen auch wunderbar!

              Ich probiere es dann nachher nochmal mit dem Rechnernamen!

              Hier die Quellcode-Auszüge:

              Server:

              <PRE>
              Public Sub StartReciever()
              Try
              If (thread_Server Is Nothing) Then
              thread_Server = New Thread(AddressOf ListenForClients)
              thread_Server.Name = "ListenForClients"
              hashtable_AllClients = New Hashtable
              thread_Server.Start()
              Else
              RaiseEvent ErrorHandler(EnumError.ErrorAllreadyRunning)
              End If
              Catch ex As Exception
              RaiseEvent ErrorHandler(EnumError.ErrorStartReciever)
              End Try
              End Sub
              </PRE>

              <PRE>
              Private Sub ListenForClients()
              Try
              tcplistener = New TcpListener(ipaddress_localAddr, integer_port)
              tcplistener.Start()
              Do
              Dim client As New Client(tcplistener.AcceptTcpClient)
              AddHandler client.Connected, AddressOf OnConnected
              AddHandler client.Disconnected, AddressOf OnDisconnected
              AddHandler client.Recieved, AddressOf OnRecieved
              AddHandler client.ClientErrorHandler, AddressOf OnClientErrorHandler
              hashtable_AllClients.Add(client.ID, client)
              Loop Until False
              Catch ex As Exception
              End Try
              End Sub
              </PRE>

              Client:

              <PRE>
              Public Sub Connect()
              Try
              tcpclient = New TcpClient(string_Host, integer_Port)
              tcpclient.GetStream.BeginRead(byte_data, 0, 1024, AddressOf ReadStream, Nothing)
              integer_status = EnumStatus.Connected
              Catch ex As Exception
              RaiseEvent ErrorHandler(EnumError.ErrorConnect)
              integer_status = EnumStatus.Disconnected
              End Try

              End Sub
              </PRE>

              Gruß
              Danie

              Comment


              • #8
                Hallo Daniel,
                der Code sieht eigentlch gut aus.<br>
                Mein Tipp versuchs auf jeden Fall mal mit em Rechnername als string_Host.<br>
                Mit der IP-Adresse des Servers hat's bei mir auch nicht funktioniert, mit dem Hostname sofort.<br>
                In der MSDN-Onlinehilfe sieht es so aus, als ob bei TcpClient nur Hostnamen unterstützt werden.<br><br>
                Hier der Link:<br>
                http://msdn.microsoft.com/library/default.asp?url=/library/en-US/cpref/html/frlrfsystemnetsocketstcpclientclassctortopic.asp<b r><br>
                So müsste es auf jeden Fall funktionieren.<br>
                Gruß To

                Comment


                • #9
                  Hi Tom,

                  jetzt funktioniert es!!

                  <B>Vielen Dank für den Tipp!</B>

                  Gruß
                  Danie

                  Comment


                  • #10
                    Hallo!

                    Nachdem obiges Problem ja gelöst ist und das bei mir auch wunderbar funktioniert, habe ich nun das nächste Problem: <B>Umlaute</B>.

                    Wenn ich String über die Verbindung an den PocketPC übertrag, werden Umlaute nicht korrekt übertragen.

                    Ich habe schon beim Encoding geschaut, aber nicht wirklich etwas gefunden...

                    Kann jmd. helfen?

                    Gruß
                    Danie

                    Comment

                    Working...
                    X