так, что касается ваших вопросов:
Можете ли вы дать мне совет по поводу Синхронного и Асинхронного: в вашем случае, учитывая сложность приложения, вы можете использовать либо синхронизирующие, либо асинхронные сокеты, поскольку twilson заявил, что синхронизирующие сокеты блокируют вашиОсновной поток, в то время как асинхронные нет, если у вас есть проблемы с производительностью, перейдите к асинхронным сокетам
Кроме того, как клиент может найти сервер, если клиенту не нужно вводить ip сервера?это означает, что я должен выбрать между TCP и UDP: хорошо, между TCP и UDP-соединениями есть большая разница, вы обычно используете UDP (без установления соединения), когда у вас есть проблемы с производительностью, такие как приложения VoIP, игры в реальном времени, видео-чат и т. д., в то время как вВ других случаях вы используете TCP, так что в вашем случае TCP должен вас устраивать.
и последний вопрос: могу ли я создать сервер асинхронным, но клиенты синхронны, это нормально?Да, вы могли бы использовать этот тип реализации, даже если было бы полезно иметь сокеты одинакового типа как на клиентах, так и на серверах.