Как восстановить соединение TCP, когда устройство перезагружается - PullRequest
0 голосов
/ 19 апреля 2019

Это проблема связи между Android и ПК. Смартфон является хостом, ожидающим соединения, и когда компьютер подключен, смартфон продолжает отправлять информацию на компьютер.

Я хочу переподключить tcp, даже если смартфон перезагрузится. Смартфон ожидает подключения снова, даже если после перезагрузки. Если смартфон выключен, подключенное значение остается «истинным». И получил «нулевое» значение. Что я должен сделать, чтобы снова подключиться в это время?

TcpClient MyTcpClient;
int myPort = 4000;
StreamWriter MyWriter;
StreamReader MyReader;

int port = GetFreePort();

MyTcpClient = new TcpClient(IPAddress.Loopback.Tostring(), port);
MyTcpClient.ReceiveTimeout = 30000;

MyReader = new StreamReader(MyTcpClient.GetStream());
MyWriter = new StreamWriter(MyTcpClient.GetStream());

while(MyTcpClient.Connected) //if device is off, it still true
{
    string line = MyReader.ReadLine();// when device is off, it is null
}

Я хочу восстановить соединение Tcp, если устройство перезагружается.

1 Ответ

0 голосов
/ 20 апреля 2019

Насколько я знаю, вы должны настроить ReceiveTimeout как для клиента, так и для сервера.

и использование сокета предоставит вам гораздо больше возможностей, например

SetSocketOption (SocketOptionLevel.Socket,SocketOptionName.KeepAlive, true).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...