[C#] Communicatie tussen PDA en PC (via USB)

Pagina: 1
Acties:

  • ThaStealth
  • Registratie: Oktober 2004
  • Laatst online: 27-11 13:59
Hoi,

Ik ben nog altijd bezig met mijn schoolproject en ben nu begonnen aan het communicatiedeel tussen PDA en PC, dit moet gaan lopen via een USB Cradle, dus niet via het lokale netwerk.

Hiervoor had ik in gedachte dat ik een TCPSocketClient en TcpListener ga gebruiken. de PDA wil ik als server inrichten en de PC als client, hiervoor heb ik de volgende code in de PDA gestopt:
C#:
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
28
29
30
31
        TcpListener tcpLsn;
        public ServerPDA()
        {
            Mbox = new mailbox();
            if (tcpLsn == null)
            {
                tcpLsn = new TcpListener(IPAddress.Parse("127.0.0.1"), 1540);
                tcpLsn.Start();
                Thread tcpThd = new Thread(new ThreadStart(WaitingForClient));
                threadHolder.Add(connectId, tcpThd);
                tcpThd.Start();
            }
        }


        private void WaitingForClient()
        {
            while (true)
            {
                // Accept will block until someone connects
                Socket sckt = tcpLsn.AcceptSocket();
                if (connectId < 10000)
                    Interlocked.Increment(ref connectId);
                else
                    connectId = 1;
                if (socketHolder.Count < MaxConnected)
                {
                   // connectie is gemaakt, rest is nu oninteressant om te bekijken
               }
            }
       }


En op de PC zit de volgende code:

C#:
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
        Thread t;
        TcpClient s;
        public ClientPC()
        {
            s = new TcpClient();
                Mbox = new mailbox();
                IPAddress hostadd = IPAddress.Parse("127.0.0.1");
                int port = Int32.Parse("1540");
                IPEndPoint EPhost = new IPEndPoint(hostadd, port);

                try
                {
                    s.Connect(EPhost);

                    if (s.Connected)
                    {
                        t = new Thread(new ThreadStart(OntvangPDA));
                        t.Start();
                    }
                }
                catch (Exception e1)
                {
                    MessageBox.Show(e1.ToString());
                }
       }


Het probleem is dus dat er op de PC geen server draait terwijl ik em wel laat connecten naar localhost, ik had verwacht dat de PDA misschien aan de PC kon vertellen dat hij die server was waar de pc op zoek naar is, dit bleek duidelijk niet te werken, mijn vraag is dus nu ook, welke IP's (of andere connectiemethode) moet ik gebruiken om dit geheel te laten werkn

Mess with the best, die like the rest


  • cspare
  • Registratie: Oktober 2006
  • Laatst online: 29-07 22:19

cspare

What the deuce?!

als je active sync gebruikt, kan je vanuit je PDA je PC benaderen via de hostname ppp_peer

The one who says it cannot be done, should never interrupt the one who is doing it.


  • ThaStealth
  • Registratie: Oktober 2004
  • Laatst online: 27-11 13:59
Okee, dat is wel handig om te weten, bestaat er ook zoiets als een ppp_client voor de PDA?

Of is er een mogelijkheid om een event te krijgen als hij gekoppeld word aan de PC? dus dat ik kan zien wanener hij gedockt word?

Mess with the best, die like the rest


  • Reneger
  • Registratie: Januari 2007
  • Laatst online: 14:44

Reneger

Wie? IK?

Daarvoor kan je Remote Api (RAPI) gebruiken.

  • Equator
  • Registratie: April 2001
  • Laatst online: 28-11 20:09

Equator

Crew Council

#whisky #barista

Zowiezo is een service die op 127.0.0.1 draait alleen maar vanaf die host te bereiken. Het is localhost. Dus niet te bereiken vanaf een andere client.

Daarnaast biedt ActiveSync al een compleet werkende IP verbinding. (Meestal 169.254.2.x)

Je zal alleen even moeten inhaken op het activesync proces wat start.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Equator schreef op maandag 18 juni 2007 @ 19:52:
Zowiezo is een service die op 127.0.0.1 draait alleen maar vanaf die host te bereiken. Het is localhost. Dus niet te bereiken vanaf een andere client.

Daarnaast biedt ActiveSync al een compleet werkende IP verbinding. (Meestal 169.254.2.x)

Je zal alleen even moeten inhaken op het activesync proces wat start.
Idd, anders moet je aan IPAddress.Any binden. Dan ben je wel extern benaderbaar via al je ip interfaces

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1