Подтвердить что ты не робот

Каковы преимущества использования TcpClient через Socket напрямую?

Я понимаю, что TcpClient является оберткой вокруг класса сокета, и я могу получить доступ к базовому сокету при использовании TcpClient, но что именно делает оболочка?

При использовании TCPClient мне нужно продолжать вызов метода Receive(), как я делаю с сокетом, или заверяет ли оболочка все мои данные?

Наконец, могу ли я использовать TcpClient на сервере и клиенте для переноса сокета (после использования TcpListener для приема исходного соединения на сервере)

4b9b3361

Ответ 1

что именно делает обертка?

Позвольте мне объяснить это на примере. У вас есть метод в С# File.ReadAllLines. Он читает все строки в файле для вас. Теперь вы также можете достичь тех же результатов с помощью класса FileStream или любого другого класса, который читает файл.. BUT.. wrapper i.e. File.ReadAllLines, позволяет достичь того же с меньшим количеством строк кода. Упаковщики всегда повышают производительность, абстрагируя детали низкого уровня.

При использовании TCPClient мне нужно продолжать вызов Receive(), как я делаю с сокетом или завершает ли оболочка все мои данные?

TCPClient не имеют метода Receive, такого как Socket, но идея такая же. Вам нужно будет использовать такие методы, как GetStream, чтобы прочитать данные, которые он не будет автоматически отображаться для вас

Могу ли я использовать TcpClient как на сервере, так и на клиенте для Гнездо

Да, вы можете безопасно использовать его как на стороне клиента, так и на стороне сервера