mfn9
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Добрый день! пишу на Delphi TCPServer,TCPClient с помощью Synapse столкнулся с такой проблемой передачи сообщения на сервер, не совсем понятно как отправлять необходимое мне сообщение к примеру с клиента к серверу в начале сообщения мне нужно передать значение в HEX (002b) потом само сообщение HEX(485354) итого на сервер должно прийти сообщение HEX (002b485354) если для передачи использовать процедуру SendString() то HEX2STR(002b485354)=+HST и когда сообщение приходит на сервер то теряются первые 00 и оно имеет вид HEX (2b485354) делаю так: Код: var sock: TTCPBlockSocket; s: string; begin sock:= ttcpblocksocket.Create; try sock.Connect('your.server.com','80'); sock.SendString('+HST' + CRLF); s := sock.recvstring(15000); //... finally sock.Free; end; end; | как не терять первые 00 ? возможно нужно использовать не SendString() а что-то другое? Добавлено: нашел решение Код: function HexToString(H: String): String; var I : Integer; begin Result:= ''; for I := 1 to length (H) div 2 do Result:= Result+Char(StrToInt('$'+Copy(H,(I-1)*2+1,2))); end; sock.SendString(HexToString('002B485354'); | на сервер приходит полностью все сообщение 002B485354 | Всего записей: 63 | Зарегистр. 05-12-2005 | Отправлено: 15:50 23-02-2015 | Исправлено: mfn9, 15:51 23-02-2015 |
|