-
При разработке клиент-серверного приложения у нас возникла следующая проблема.
Коротко опишу задачу. Есть TCP-сервера и ТСР-клиента.
Серверная часть реализована на Delphi. В ней используется компонент TTCPServer: … TVpNetHstServerCore = class private … FTCPServer : TTCPServer; // TCP-сервер … end; …
Клиентская часть реализована на Java (J2ME). В ней для связи используется SocketConnection:
public class SocketThread extends Thread implements ActiveCommThread { ... public SocketConnection conn; … }
В процессе установки связи и обмена данными последовательно выполняются следующие действия: - клиентское приложение открывает TCP-соединение с серверным приложением; - серверное приложение принимает соединение, создает поток обработки этого соединения; - после установки соединения начинается процесс обмена данными. Обмен данными имеет форму запрос-ответ, причем запросы посылает серверное приложение, а отвечает соответственно клиентское приложение.
Проблема состоит в том, что при отправке приложением-сервером TCP-пакета с запросом, в этом TCP-пакете почему-то устанавливается флаг PSH, которого вроде быть не должно. После приема этого TCP-пакета приложение-клиент, вместо ответа, послает в пакет с флагом RST. После этого соединение закрывается.
Помогите, пожалуйста, решить эту проблему. Буду благодарен за любую помощь.
|