我有一个使用SslStream的C#服务器:
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);
字符串
在使用SslStream之前,我曾经连接过这个flutter客户端:
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));
}
型
一切都很好,但现在我不知道如何连接Flutter到服务器。有什么需要帮忙的吗?
1条答案
按热度按时间62lalag41#
在我的例子中,我意识到当我可以使用http包时,使用干净的TCP是毫无意义的,因为所有的东西都已经为安全连接做好了准备。所以我开始使用flutter http包。
对于像我这样的初学者,不要浪费时间为安全连接构建自己的代码,如果不需要使用TCP,请使用包。祝你好运:)