using System; using System.IO; using System.Threading.Tasks; using Windows.Networking; using Windows.Networking.Sockets; namespace Plane.Communication { /// /// 提供 TCP 通信的能力。 /// public class TcpConnection : StreamSocketConnection { private HostName _remoteHostName; private string _remoteServiceName; public TcpConnection(string remoteHostName, int remotePort = 5250) { _remoteHostName = new HostName(remoteHostName); _remoteServiceName = remotePort.ToString(); } public override async Task OpenAsync() { if (IsOpen) { return; } _socket = new StreamSocket(); await _socket.ConnectAsync(_remoteHostName, _remoteServiceName); _inputStream = _socket.InputStream; _outputStream = _socket.OutputStream.AsStreamForWrite(); IsOpen = true; } } }