Здравствуйте.
У меня возникла такая проблема:
Используя встроенный стек модема SIM900, я подключаюсь к удаленному серверу (SIM900 клиент). У меня модем должен быть постоянно на связи с сервером. Общение с сервером происходит успешно, успешно открываются и закрываются соединения.
НО, если на удаленном сервере неожиданно оборвется связь, то он (удаленный сервер), не успевает сообщить об этом модему. И модем об этом узнает только при попытке отправить серверу сообщение - не придет SEND OK. После не прихода SEND OK, модем продолжает отвечать на команды (например для теста я шлю AT).
Но как, только я попытаюсь закрыть это соединение (допустим AT+CIPCLOSE=0), то модем намертво виснет. В принципе, это соединение можно закрыть командой AT+CIPSHUT, но тогда закрываются и все остальные соединения.
При работе модема (SIM900) как сервера и подключении к нему удаленных клиентов и последующего неожиданного обрыва связи с этими клиентами со стороны ПК (клиента), происходит тоже самое - соединение остается открытым, а при попытке закрыть его (AT+CIPCLOSE) модем виснет.
Может кто-то знает как с этим бороться? Заранее благодарен за любую помощь.
|