ВУЗ:
Составители:
Рубрика:
- 42 -
isListenSocket := NetSocket.CreateListenSocket(handle,
WM_LISTENSOCKETEVENT, 80);
Процедура ReadCommandMsg считывает в цикле принятое от клиента со-
общение:
procedure TWbServe.ReadCommandMsg;
var IsCommand: String; IsMessage: String;
liCmdbength: Integer; liMsgLength: Integer;
begin
{ Получить запрос от клиента с проверкой oшибок }
liMsgLength := recv(isConnectionSocket, ReceiveBuffer, 8192, 0);
if (liMsgLength = SOCKET_ERROR) and
(WSAGetLastError <> WSAEWOOLDBLOCK) then
ShowMessage(NetSocket.SocketError) { выдать сообщение об ошибке }
else
begin
{ Закрыть принятую строку запроса нулем }
ReceiveBuffer[liMsgLength] := Char(0);
{ Получить первую строку принятого запроса }
if NetSocket.GetLine(TempBuffer, ReceiveBuffer) then
begin
{ Выдать принятую строку на экран для пользователя }
mleReceived.Lines.Add(StrPas(TempBuffer));
{ Есть еще ли что-нибудь в буфере захвата? }
if (Length(isHoldBuffer) > 0) then
{ Если да, добавьте его перед новой строкой }
IsMessage := isHoldBuffer + StrPas(TempBuffer)
else
IsMessage := StrPas(TempBuffer);
{ Очистить буфер захвата }
isHoldBuffer := '';
{ Найти символ пробела для определения конца команды }
liCmdLength := Pos(' ', IsMessage);
if (liCmdLength = 0) then
begin
{ Если нет символа пробела, это не командная строка заголовка }
liCmdLength := Length(IsMessage);
IsCommand := IsMessage;
IsMessage := '';
end
else
begin
{ Отделить команду от остальной части запроса }
IsCommand := Copy(IsMessage, 1, (liCmdLength - 1));
IsMessage := Copy(IsMessage, (liCmdLength + 1), Length(IsMessage));
isListenSocket := NetSocket.CreateListenSocket(handle, WM_LISTENSOCKETEVENT, 80); Процедура ReadCommandMsg считывает в цикле принятое от клиента со- общение: procedure TWbServe.ReadCommandMsg; var IsCommand: String; IsMessage: String; liCmdbength: Integer; liMsgLength: Integer; begin { Получить запрос от клиента с проверкой oшибок } liMsgLength := recv(isConnectionSocket, ReceiveBuffer, 8192, 0); if (liMsgLength = SOCKET_ERROR) and (WSAGetLastError <> WSAEWOOLDBLOCK) then ShowMessage(NetSocket.SocketError) { выдать сообщение об ошибке } else begin { Закрыть принятую строку запроса нулем } ReceiveBuffer[liMsgLength] := Char(0); { Получить первую строку принятого запроса } if NetSocket.GetLine(TempBuffer, ReceiveBuffer) then begin { Выдать принятую строку на экран для пользователя } mleReceived.Lines.Add(StrPas(TempBuffer)); { Есть еще ли что-нибудь в буфере захвата? } if (Length(isHoldBuffer) > 0) then { Если да, добавьте его перед новой строкой } IsMessage := isHoldBuffer + StrPas(TempBuffer) else IsMessage := StrPas(TempBuffer); { Очистить буфер захвата } isHoldBuffer := ''; { Найти символ пробела для определения конца команды } liCmdLength := Pos(' ', IsMessage); if (liCmdLength = 0) then begin { Если нет символа пробела, это не командная строка заголовка } liCmdLength := Length(IsMessage); IsCommand := IsMessage; IsMessage := ''; end else begin { Отделить команду от остальной части запроса } IsCommand := Copy(IsMessage, 1, (liCmdLength - 1)); IsMessage := Copy(IsMessage, (liCmdLength + 1), Length(IsMessage)); - 42 -
Страницы
- « первая
- ‹ предыдущая
- …
- 40
- 41
- 42
- 43
- 44
- …
- следующая ›
- последняя »