Tcp клиент и сервер одновременно - PullRequest
0 голосов
/ 21 мая 2018

Я должен реализовать клиентский интерфейс взаимодействия с сервером, что немного странно, и я сомневаюсь, как его разработать.

Связь осуществляется по следующим правилам:

  1. Это делается только через TCP.
  2. Клиент отправляет серверу XML, идентифицирующий себя.
  3. Если ответ сервера в порядке, клиент начинает прослушивать поступающие запросы от сервера.

Может ли TcpClient выступать в качестве сервера?Как лучше всего это реализовать?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Как только соединение установлено, нет существенного различия между «клиентом» и «сервером».Есть только поток TCP, который можно использовать для передачи информации в обоих направлениях.Вы должны использовать TcpClient, потому что, похоже, вам не нужно прислушиваться к новым соединениям или чему-то в этом роде;вам просто нужно прочитать запросы из существующего потока и предоставить ответы.

0 голосов
/ 21 мая 2018

После установления соединения с сервером клиент может отправлять или получать любые данные.Так что если вы просто хотите прослушивать запросы с сервера:

while(client.Connected)
{
   client.Client.Receive(data);
   DoSomething(data);
}
...