Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Kommunikation zwischen Android-App und .NET-Programm

Frage Entwicklung Webentwicklung

Mitglied: Fevenius

Fevenius (Level 1) - Jetzt verbinden

25.07.2014, aktualisiert 15:23 Uhr, 2278 Aufrufe, 1 Kommentar

Hallo,
im Rahmen eines Projektes von mir, versuche ich nun folgendes:
Mithilfe einer Android-App (Client) soll man das Programm (Sever, nur noch diese "Remote-Funktion" fehlt) überwachen und steuern können.
Ich habe einige Fragen diesbezüglich, da ich noch nie serverseitig programmiert habe.
Bisher habe ich bei Netzwerkprogrammierung nicht auf Low-level Basis (Sockets, TcpClient etc...), sondern auf High-Level (Http) programmiert,
deswegen: Ist es möglich, dass die .NET-Anwendung einen Http-Server simuliert, oder muss ich doch mit Sockets arbeiten?
Des Weiteren bin ich durch googeln auf das .NET Remote-Framework gestoßen, würde dieses mein Vorhaben vereinfachen bzw. setzt es voraus,
dass Client sowie Server über .NET verfügen?
Hier ein kleines Beispiel wie ich mir ein Server auf Low-Level Basis vorstelle:
01.
  
02.
<?  
03.
// using System.Net; 
04.
// using System.Net.Sockets; 
05.
 
06.
        /// <summary> 
07.
        /// Empfängt Nachrichten 
08.
        /// </summary> 
09.
        public void StartListening() 
10.
11.
            // Erhalte die eigene IP-Adresse 
12.
            IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); 
13.
            IPAddress ipAddress = ipHostInfo.AddressList[0]; 
14.
            IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000); 
15.
            // TCP-Listener um Verbindungen einzugehen 
16.
            TcpListener listener = new TcpListener(localEndPoint); 
17.
            // Starte das abhören 
18.
            listener.Start(); 
19.
            // TcpClient-Instanz des Clients, der sich verbindet 
20.
            TcpClient client = listener.AcceptTcpClient(); 
21.
            // Byte-Buffer welcher die empfangende Nachricht enthalten wird 
22.
            byte[] msgBuffer = new byte[4096]; 
23.
            // Den Stream zum Empfangen der Nachrichten speichern 
24.
            NetworkStream requestStream = client.GetStream(); 
25.
            // Die Nachricht auslesen und speichern 
26.
            requestStream.Read(msgBuffer, 0, msgBuffer.Length); 
27.
            requestStream.Close(); 
28.
            client.Close(); 
29.
            // Konvertieren der Nachricht in einen string 
30.
            string message = UTF8Encoding.ASCII.GetString(msgBuffer); 
31.
32.
 
33.
         // Und hier ein Beispiel, wie ich mir die entsprechende Client-Seite (wieder in C#, nicht in Java, obwohl es aufgabe der Android-App ist) vorstelle: 
34.
        // Wird in Wirklichkeit nicht auf denselben Ports laufen 
35.
 
36.
        /// <summary> 
37.
        /// Empfängt Nachrichten 
38.
        /// </summary> 
39.
        public void Send(string message, IPEndPoint IP) 
40.
41.
            IPEndPoint IP = new IPEndPoint(84624488, 1000); 
42.
            IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); 
43.
            IPAddress ipAddress = ipHostInfo.AddressList[0]; 
44.
            IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000); 
45.
            TcpClient client = new TcpClient(localEndPoint); 
46.
            client.Connect(IP); 
47.
            NetworkStream stream = client.GetStream(); 
48.
            stream.Write(UTF8Encoding.ASCII.GetBytes(message), 0, UTF8Encoding.ASCII.GetBytes(message).Length); 
49.
            stream.Close(); 
50.
            client.Close(); 
51.
52.
>? 
Nun noch mehr Fragen :
Die serverseitige Programmierung ist doch richtig geschrieben oder? Die IP, mit der sich der Client (Nutze der Android-App) verbinden muss
ist die des Computers, auf dem das Programm läuft, nicht?
Hoffe auf Antworten,

Mit freundlichen Grüßen
~Fevenius
Mitglied: Maffi
26.07.2014 um 21:01 Uhr
Hallo Fevenius,

ich hoffe ich kann dir etwas Helfen. Bei der IP kommt es drauf an, wo du bist. Bist du im Intranet, dann wird es die Lokale IP Adresse des Rechners sein, diese sollte in etwa so anfangen:
192.168.... oder bei größeren Netzwerken 10.0.....

Wenn du aber von unterwegs oder woanders drauf zugreifen möchtest, brauchst du deine Externe IP, diese siehst du zb. auf www.wieistmeineip.de hierzu müsstet du ggf. Ports in einem Router freischalten. Wenn du zb. über http daten übertragen willst, dann wäre es Standardmäßig der Port 80 (dieser ist aber auch veränderbar)

Ich verwende eine Android APP und ein C# Programm, ich lasse die beiden über MySQL kommunizieren. Es gibt sicher bessere Lösung, aber in Sachen Programmierung bin ich auch noch einsteiger. Meine Welt ist eher TCP/IP ;)

Ich hoffe ich konnte dir etwas helfen.

Viele Grüße

Maffi
Bitte warten ..
Ähnliche Inhalte
Java
Android App Programmieren lernen
gelöst Frage von deinernstjetztJava1 Kommentar

Hallo, ich habe vor Android Apps zu programmieren. Kennt jemand eine Website oder einen YouTuber der das programmieren gut ...

Windows Tools
Programme zur internen Kommunikation
gelöst Frage von nobody8806Windows Tools7 Kommentare

Hallo, vorweg will ich mich gleich mal entschuldigen, falls das nicht der richtige Bereich ist. Leider habe ich keinen ...

Firewall
Android App stürzt hinter Firewall ab
gelöst Frage von Ex0r2k16Firewall20 Kommentare

Hi zusammen, ich habe hier eine ERP App, die in einem extrem beschränkten Netz mit einem "App not responding" ...

Voice over IP
VPN über Synology - FritzFon App nicht möglich (Android)
gelöst Frage von MoritzKVoice over IP7 Kommentare

Guten Abend liebes Administrator-Forum, ich bin neu hier und hoffe, dass ihr mir weiterhelfen könnt. Mein Name ist Moritz, ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 8 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 15 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 104 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless18 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...