![]() |
ClientSocket http
посылаю вот так
void __fastcall TForm2::Button3Click(TObject *Sender) { UnicodeString httpheader,httpheader1,httpheader2,httpheader3,htt pheader4; httpheader1="GET / HTTP/1.0 \r\nAccept: */* \r\n"; httpheader2="Connection: Keep-alive \r\n"; httpheader3="Host: rustorrents.org \r\n"; httpheader4="User-Agent: MyAgent \r\n\r\n"; httpheader= httpheader1+httpheader2+httpheader3+httpheader4; ClientSocket1->Socket->SendText(httpheader); Memo1->Lines->Add(httpheader); } принимаю вот так void __fastcall TForm2::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket) { UnicodeString answer ; Memo1->Lines->Add("Получаем данные"); answer=ClientSocket1->Socket->ReceiveText(); Memo1->Lines->Add(answer) ; } компилятор с++ builder 2009 в мемо получаю китайские эроглифы http://jpegshare.net/images/cb/89/cb...1d4945ff7b.jpg почему? |
Цитата:
cyberforum.ru/cpp-builder/thread31583.html должно получится, вообще погугли на эту тему |
вот поэтому и не люблю я rad среды) порой они просто рогами в воздух упираются)
|
поменял на
void __fastcall TForm2::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket) { int iBufSize = Socket->ReceiveLength(); char *Buf = new char [iBufSize + 1]; Socket->ReceiveBuf(Buf,iBufSize); AnsiString Rtext=Buf; Memo1->Lines->Add(UTF8Decode(Rtext)); } теперь не доконца получает пример запрос на яндекс http://jpegshare.net/images/e7/83/e7...4288b4ee5e.png |
Подниму наверно тему так как перерыл весь инет и решения не нашел
Данные приходят частично |
У меня всё целиком приходит
Код:
void __fastcall TForm1::Button1Click(TObject *Sender) |
а как ты хотел? чтобы всегда сразу все приходило? такого не будет
вызывай еще раз ReceiveBuf(Buf,iBufSize) (да и еще, больше iBufSize, за раз не примешь) Да и еще момент, разве запросы/ответы в unicode передаются? Может я просто не знаю.. |
Цитата:
поставил вот так: int iBufSize = Socket->ReceiveLength(); while(iBufSize>0){ char *Buf = new char [iBufSize + 1]; Socket->ReceiveBuf(Buf,iBufSize); AnsiString Rtext=Buf; //Memo1->Lines->Add(UTF8Decode(Rtext)); Application->ProcessMessages(); Memo1->Lines->Add(Rtext); } iBufSize=0; тоже самое не до конца. |
RunDMX, нет под рукой билдера...какой выбран режим блокируемые или не блокируемые сокеты?
Цитата:
Возможно неверные заголовки и сервер раньше времени разрывает соединение |
ctNonBlocking
ответ от сервера HTTP/1.1 200 OK Server: nginx/0.6.32 Date: Mon, 15 Feb 2010 00:18:56 GMT Content-Type: text/html; charset=windows-1251 Connection: close X-Powered-By: PHP/5.2.6-1+lenny4 Vary: Accept-Encoding дальше идет Html и обрываеться гдето в середине и дальше отключение происходит как видно на 2 скрине |
| Время: 17:40 |