Przesyłanie danych GETem za pomocą Winsock

Przesyłanie danych GETem za pomocą Winsock
AS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 37
0

Witam,
Chciałbym napisać przesyłanie danych GET'em za pomocą Winsock w delphi lecz mam pewien problem.

Mój kod :

Kopiuj
procedure SendData;
var
  wsa : WSAData;
  ErrorCode : Integer;

  Gniazdo : Integer;
  socket_info: sockaddr_in;
  Handle : THandle;
  Buffer : array[0..1024] of char;
  Odebralem : array[0..1024] of char;

begin
  ErrorCode := WSAStartup(MAKEWORD(2,0),wsa);
  if (ErrorCode = SOCKET_ERROR) then
    MessageBox(0, 'Nie mozna wystartowac gniazda', 'WinSock', MB_OK);

  Gniazdo := Socket(AF_INET, SOCK_STREAM, 0);
  socket_info.sin_family := AF_INET;
  socket_info.sin_addr.S_addr := inet_addr(PChar('xxxxx'));
  socket_info.sin_port := htons(80);

  ErrorCode := connect(Gniazdo, socket_info, SizeOf(socket_info));
  if (ErrorCode = SOCKET_ERROR) then
    MessageBox(0, 'Nie mozna podlaczyc', 'WinSocks', MB_OK);

  WSAAsyncSelect(Gniazdo,Handle,WM_USER, FD_READ or FD_CONNECT or FD_ACCEPT);
    Buffer := 'GET http://adres.com/data.php?'  +
    '&pierwszy='+Zmienna;

  send(Gniazdo, Buffer, SizeOf(Buffer), 0);
  Recv(Gniazdo, Odebralem, SizeOf(Odebralem), 0);

end;

Gdy chce wysyłac dane to nie moge bo kłoci mi się z typami Strin i Array.

Kopiuj
Buffer := 'GET http://adres.com/data.php?'  +
    '&pierwszy='+Zmienna;
Kopiuj
Zmienna

to string

Kopiuj
,a buffer to tablica char. 
Gdy zmieniam w zmiennej buffer na string, wtedy jest wszystko ok,ale nie wysyła danych  : /.

 Mógłby mi pomóc rozwiązać problem?

Pozdrawiam
flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
1

No to przekopiuj zawartość łańcucha do bufora np. procedurą Move i po problemie niezgodności typów.

olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
1

Czy jest sens wymyślać koło na nowo? Skoro do TCP świetnie nadaje się to http://piechnat.pl/article/simpletcp.html - używam/łem wielokrotnie pod WinAPI. Imo jest super. Ale jak chcesz.

AS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 37
0

Dziękuję za odpowiedzi. Skorzystam z SimpeTCP, co podał Olesio. Wcześniej o nim nie słyszałem.
Temat można zamknąć.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.