String von vb.net (windows) zu c# (android) schicken

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von J.Herbrich.

    String von vb.net (windows) zu c# (android) schicken

    Hallo,
    ich möchte eine App mit dem dazugehörigen Programm entwickeln, und ich möchte das meine Windoof Application strings zu meiner Android app schicken kann.
    Wie löse ich das am besten.
    Beide geräte sind im gleichen Netzwerk und es sollte möglichst in echtzeit geschehen.
    Windows: VB.net
    Android: c# (Xamarin)
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.
    ich kenn mich nicht so gut aus aber beim senden muss ich dann auch die Loacale Ip angeben als ziel?
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.
    also anders gesagt, du hast dich noch nie mit Netzwerkkommunikation beschäftigt?

    Dann schau dir mal die TCPListener und TCPClient Klassen an. Danach schauste dir mal den Multiserver (TCP) und den VersuchsChat mit leistungsfähigem Server an. Dann solltest du eine ungefähre Ahnung haben, wie man Dinge zwischen zwei Geräten im Netzwerk sendet.
    danke, hab jetzt schon hinbekommen auf einem rechner zwischen apps strings zu senden, doch nicht von meinem Handy auf den PC oder umgekehr.

    wenn ich als ip 127.0.0.1 verwende dann kommt 'Connection' reffused (obwohl das Programm auf meinem Rechner läuft und 'zuhört'
    wenn ich die öffentliche ip verwende geht garnichts, es versucht zu connecten findet aber nichts, gibt mir aber auch kein error.
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.
    Ich debugge auf meinem Galaxy S5.

    Code:

    Server (auf Windows vb.net):

    VB.NET-Quellcode

    1. Dim tcpListener As New TcpListener(2567)
    2. tcpListener.Start()
    3. Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
    4. Dim networkStream As NetworkStream = tcpClient.GetStream()
    5. Dim bytes(tcpClient.ReceiveBufferSize) As Byte
    6. networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
    7. Dim clientdata As String = Encoding.ASCII.GetString(bytes)
    8. ListBox2.Items.Add(clientdata)
    9. Dim responseString As String = "Connected to server."
    10. Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
    11. networkStream.Write(sendBytes, 0, sendBytes.Length)
    12. ' tcpClient.Close()
    13. ' tcpListener.Stop()


    Client (auf Android C#):

    C#-Quellcode

    1. System.Net.Sockets.TcpClient tcpClient = new System.Net.Sockets.TcpClient();
    2. tcpClient.Connect("127.0.0.1", 2567);
    3. NetworkStream networkStream = tcpClient.GetStream();
    4. if (networkStream.CanWrite && networkStream.CanRead)
    5. {
    6. Byte[] sendbytes = Encoding.ASCII.GetBytes("ich schicke dir was du nudel");
    7. networkStream.Write(sendbytes, 0 , sendbytes.Length);
    8. byte[] bytes = new byte[tcpClient.ReceiveBufferSize + 1];
    9. networkStream.Read(bytes, 0, Convert.ToInt32(tcpClient.ReceiveBufferSize));
    10. string returndata = Encoding.ASCII.GetString(bytes);
    11. Shout("Host returned: " + returndata);
    12. } else if (!networkStream.CanRead) {
    13. Shout("cannot not write data to this stream");
    14. tcpClient.Close();
    15. } else if (!networkStream.CanWrite) {
    16. Shout("cannot read data from this stream");
    17. tcpClient.Close();
    18. }
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.
    Wenn du 127.0.0.1 verwendest verbindet sich das Gerät mit sich selber und dort ist ja auch kein TcpListener der auf ne Verbindung wartet.
    Nimm die Netzwerk-IP vom PC (in der cmd ipconfig eingeben, deinen Adapter finden, und dann unter IPv4-Adresse siehst du die dann)
    KaskadekingDE on GitHub :)
    Bitte keine Fragen über Programmierung per PN! Dafür ist das Forum hier.

    Who cares? ¯\_(ツ)_/¯
    ok, aber wie mach ich das dann das mein handy (wenn ich die app nachher hochlade) automatisch die ip für den rechner findet auf dem das programm dann läuft.
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.
    Wenn beide Geräte im gleichen Netzwerk sind, dann musst du dir nur die Adressen vom Router besorgen. Die werden dann vom Router verteilt bspw 192.168.1.101 .
    Am besten du machst das so, dass der Nutzer die IP eingibt und sich die App die letzte IP merkt.

    LG
    @ChOoSeMyNaMe kann ich mir vom Router alle 'Benutzer' ausgeben lassen und die einfach alle beim 'Connecten' ansprechen, und der der antwortet ist der richtige?
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.
    Ich würde sagen, dass das ziemlich umständlich wäre. Der Client sollte zum Server connecten, also seine IP preisgeben. Die vom Server sollte bekannt sein, sonst funktioniert das ganze nicht. Um die lokale Addresse des Servers herauszufinden, musst du dich entweder in den Router einloggen und den Server anhand der Mac-Addresse suchen, oder du guckst im System des Servers nach der IP. Oder das einfachste wäre es, dem Server einfach eine statische Adresse im Router zuweisen. Dadurch hat man weniger Arbeit.

    LG
    Wie viele "Endstellen" gibt es (192.0.0.x, den anfang der Ip hab ich ja)?
    Es ist keine option alle abzufragen? Sprich
    192.0.0.0
    192.0.0.1
    192.0.0.2
    192.0.0.....
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.
    Du musst in einer Schleife alle IPs durchgehen und probieren ob sie existiert.(heißt du gehst 192.168.0.0 - 192.168.2.255 durch) Oder du liest die ARP Cache deines Rechners aus, diese beinhaltet die bereits registrierten Geräte.
    Nach kurzerm Googeln geh ich aber Davon aus das ich kein zugriff auf den ARP Cache habe wenn ich auf meinem Handy bin. Darum geht es mir nächmlich das ja das Android Phone meine PC Ip erkennt,
    und wenn es mehrere Hunderte ips anzusteuern gibt, weiß nicht ob jedes Handy das packt?.
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.
    Wenn du sowieso nur innerhalb deines Heimnetzes bist, dann kann es doch nicht so schwer sein einfach die IP in die Anwendung einzugeben. Klar, automatisierung ist schön, aber sie sollte auch funktional sein. So machst du dir nen riesen Aufwand für etwas, dass im Alltag dich eigentlich keine Nerven kostet.

    Und wenn schon die IP innerhalb des Netzwerkes ständig wechselt, benutz halt den Hostname als Verbindung, dann haste keine Probleme mehr.
    Lass doch von deinen Server ein Broadcast Senden mit einen einfach Hi oder was auch immer, und der Client wertet ann aus, wen empfangene Daten gleich Hi oder was auch immer connecte auf die IP-Addresse des absenders mit deinen Protokoll.

    LG, Herbrich