Reputation: 358
I have this c# server using SslStream:
TcpListener Server = new TcpListener(IPAddress.Any, 13001);
Server.Start();
var client = Server.AcceptTcpClient();
var stream = client.GetStream();
SslStream sslStream = new SslStream(stream, false);
var certificate = new X509Certificate2("server.pfx", "password");
sslStream.AuthenticateAsServer(certificate, false, System.Security.Authentication.SslProtocols.Tls, false);
string text= string.empty;
do
{
byte[] buffer = new byte[client.ReceiveBufferSize];
int bytesRead = sslStream.Read(buffer, 0, client.ReceiveBufferSize);
Input += (Encoding.ASCII.GetString(buffer, 0, bytesRead));
} while (!Input.EndsWith("<EOF>"));
string Return = "Sesrver's answer" + "<EOF>";
sslStream.Write(Encoding.UTF8.GetBytes(Return), 0, Return.Length);
Before using SslStream I used to connect this flutter client:
String _textBuilder = "";
Socket socket = await Socket.connect(ipAddress, port, timeout: const Duration(seconds: 8));
socket.listen((List<int> event) {
_textBuilder += utf8.decode(event);
});
socket.add(utf8.encode("Some request text" + "<EOF>"));
while (!_textBuilder.endsWith("<EOF>"))
{
await Future.delayed(const Duration(milliseconds: 50));
}
Everything worked fine but now I don't know how to connect flutter to server. Any help please?
Upvotes: 1
Views: 81
Reputation: 358
In my case, I realized that it is pointless to use clean TCP when I can use http package where everything is already prepared for secured connections. So I started using the flutter http package.
For beginners like me, don't waste your time building own code for secured connections, if it is not required to use TCP, use package instead. Wish you good luck :)
Upvotes: 0