Я новичок в сокетах и у меня есть пара вопросов об их использовании в .NET. Это потребительская программа, поэтому проблем с масштабированием не возникнет, когда пользователь запускает сервер и клиент.
1) Лучше ли держать соединение сокета открытым до тех пор, пока сервер не будет закрыт, или я должен открывать соединение только тогда, когда пользователь запрашивает его, и закрывать его по завершении? Это не игра в реальном времени, поэтому запросы будут прерывистыми, но есть ли недостатки в том, чтобы оставить соединение сокета открытым?
2) Требуют ли сокеты, чтобы у пользователя были права администратора, если они запускают сервер? Я огляделся, и мне показалось, что сокеты RAW подходят, но вместо этого я планирую использовать Stream или Dgram, в зависимости от того, что лучше всего подходит для моей программы.
1 ответ
- Если вы говорите об одном сокете, тогда нет ничего страшного, чтобы оставить его открытым. Доступно множество портов, и если ваш сокет просто находится в состоянии ожидания, он будет потреблять незначительное количество системных ресурсов.
- Соединения сокетов TCP и UDP не требуют прав администратора для открытия. Однако, в зависимости от настроек брандмауэра пользователя, брандмауэр может потребоваться исключение, чтобы ваше приложение могло внешнее соединение и в зависимости от программного обеспечения брандмауэра, которое может или может не требовать прав администратора.
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.