WinInet получает ответ - PullRequest
0 голосов
/ 10 мая 2018

У меня есть этот сервер (Java):

ServerSocket s = new ServerSocket(8080);
Socket accept = s.accept();
InputStream inputStream = accept.getInputStream();
while (inputStream.available() > 0) {
    char b = (char) inputStream.read();
    System.out.print(b);
}
System.out.println("finish recieve");

System.out.println("start write");
OutputStream outputStream = accept.getOutputStream();
outputStream.write("HTTP/1.1 200 OK\r\n\r\n asdf".getBytes());
System.out.println("data sent to client");
outputStream.flush();
accept.close();

А этот клиент (delphi):

if not InternetWriteFile(hRequest, pchar(json.DelimitedText), length(json.DelimitedText), count) then
  showmessage('Send content problem: ' + inttostr(getlasterror));

showmessage('Wait for server to send data');

if not InternetGetLastResponseInfo(statusCode, resp, read) then
  showmessage('Error '+IntToStr(GetLastError));
showmessage('response-size:' + inttostr(read));
if not HttpEndRequest(hRequest,nil,0,0) then
  showmessage('Send end problem: ' + inttostr(getlasterror));
InternetCloseHandle(hRequest);
InternetCloseHandle(hConnect);
InternetCloseHandle(hConn);

Я запускаю сервер, чем клиент.

Клиент наконец-то показывает мне диалог Wait for server to send data.

Я проверяю Java-сервер и последние строки

start write
data sent to client

Хорошо, я предполагаю, что клиент получил данные во внутреннем буфере. Я нажимаю на диалоговое окно, но следующий диалог response-size:0.

Как получить hello в клиенте?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...