У меня есть интерфейс сокета tcpip для стороннего программного приложения.Я реализовал этот интерфейс для нескольких сайтов клиентов без проблем.Последний клиент, хотя ... проблемы.Мы включили вход в приложения на обоих концах, а также установили Wireshark на ПК для регистрации необработанного трафика tcpip.Таким образом, мы доказали, что мое серверное приложение успешно отправляет сообщение, компьютер получает сообщение, но клиентское приложение его не видит.(Это проблема с перебоями, поэтому ее так сложно устранять.)
Детали сокетов настолько просты, насколько они есть: один сокет, обеспечивающий двустороннюю связь между сервером и ПК.Сообщения представляют собой простой текст ascii и довольно короткие (не XML).Сервер инициирует связь, отправляя первое сообщение, а затем клиент отвечает несколькими сообщениями.Сокет всегда открыт, пока запущены приложения.Клиентское приложение разработано так, что конечный пользователь может обрабатывать только один случай за раз, что предотвращает конфликты сообщений.У них настроен какой-то опрос, их приложение «спит», пока не увидит исходное сообщение от сервера.
Сторонний поставщик посоветовал мне добавить несколько секунд задержки, прежде чем я отправлю им исходное сообщение.,Я не вижу, как это помогает.Если клиент «спит», просто опрос сокета, ожидающего сообщения, как поможет добавление задержки перед первым сообщением?Мы не посылаем два сообщения, а второе теряется.Это теряет первое сообщение.Поэтому я не понимаю, как это имеет значение, если мы отправим это сообщение сейчас или через две секунды.
Я спросил их, а они не дали мне подробностей.Это могут быть некоторые детали в их коде, которые они не хотят раскрывать мне, и это справедливо.Поэтому я спрашиваю здесь, потому что я всегда узнаю что-то новое о программировании сокетов.Может быть, вы, ребята, можете пролить некоторый свет на то, как опрос сообщений может повлиять на опрос сокета tcpip?