Hallo Leute, ich habe eine App für Android gebaut, um die GPS-Koordination zu erhalten und ich möchte die Daten über TCP an meinen C# UWP-Server senden. Als Konzept habe ich einen Socket geöffnet und ich möchte mehrere Nachrichten senden, ohne den Socket zu schließen.TCP Mehrere Nachrichten senden, ohne die Verbindung zu schließen
socket = new java.net.Socket("192.168.2.10", 9999);
printwriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
printwriter.println("message1");
printwriter.println("message2");
printwriter.println("message3");
printwriter.println("message4");
printwriter.flush();
Das Problem ist, ich erhalte nur message1 oder manchmal auch messages2 auf dem Server. Die andere Nachricht wird nicht auf dem Server angezeigt. Ich möchte keine neue Verbindung herstellen, weil ich viele Nachrichten verschicken möchte. Wenn jemand von Ihnen weiß, dass eine Lösung wünschenswert wäre.
Ich verwende derzeit den Servercode für UWP in C# von https://msdn.microsoft.com/en-us/windows/uwp/networking/sockets.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Maps
{
class Connection
{
public async void Connectie()
{
try
{
System.Diagnostics.Debug.WriteLine("Waiting for connection................");
//Create a StreamSocketListener to start listening for TCP connections.
Windows.Networking.Sockets.StreamSocketListener socketListener = new Windows.Networking.Sockets.StreamSocketListener();
//Hook up an event handler to call when connections are received.
socketListener.ConnectionReceived += SocketListener_ConnectionReceived;
//Start listening for incoming TCP connections on the specified port. You can specify any port that' s not currently in use.
await socketListener.BindServiceNameAsync("9999");
System.Diagnostics.Debug.WriteLine("Waiting for connection................");
}
catch (Exception e)
{
//Handle exception.
}
}
private async void SocketListener_ConnectionReceived(Windows.Networking.Sockets.StreamSocketListener sender,
Windows.Networking.Sockets.StreamSocketListenerConnectionReceivedEventArgs args)
{
Stream inStream = args.Socket.InputStream.AsStreamForRead();
StreamReader reader = new StreamReader(inStream);
reader = new StreamReader(args.Socket.InputStream.AsStreamForRead());
System.Diagnostics.Debug.WriteLine("connection................");
//Read line from the remote client.
string request = await reader.ReadLineAsync();
System.Diagnostics.Debug.WriteLine(request);
}
}
}
Post Ihren Server-Code auch – Eser
Danke für die Antwort. Ich habe gerade meinen Post bearbeitet und den Servercode eingegeben. – Skyx