initTerminal method
Implementation
Future<void> initTerminal() async {
setState(() => this.title =
"${widget.userName}@${widget.remoteIp}:${widget.remotePort}");
terminal.write('Connecting...\r\n');
final client = SSHClient(
await SSHSocket.connect("localhost", widget.localPort),
username: widget.userName,
onPasswordRequest: () => widget.passWord,
);
terminal.write('Connected\r\n');
final session = await client.shell(
pty: SSHPtyConfig(
width: terminal.viewWidth,
height: terminal.viewHeight,
),
);
terminal.buffer.clear();
terminal.buffer.setCursor(0, 0);
terminal.onTitleChange = (title) {
setState(() => this.title = title);
};
terminal.onResize = (width, height, pixelWidth, pixelHeight) {
session.resizeTerminal(width, height, pixelWidth, pixelHeight);
};
terminal.onOutput = (data) {
session.write(utf8.encode(data));
};
session.stdout
.cast<List<int>>()
.transform(Utf8Decoder())
.listen(terminal.write);
session.stderr
.cast<List<int>>()
.transform(Utf8Decoder())
.listen(terminal.write);
}