AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Daten senden: Client->Server->Client
Thema durchsuchen
Ansicht
Themen-Optionen

Daten senden: Client->Server->Client

Ein Thema von SleepyMaster · begonnen am 28. Apr 2004 · letzter Beitrag vom 14. Mai 2004
 
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#1

Daten senden: Client->Server->Client

  Alt 28. Apr 2004, 12:27
Hi ihrs!
Kann mir mal jemand helfen:

Ich will, dass sich mein Client mit dem Server verbindet, ihm einen Befehl sendet, was zu tun ist und der Server dann dem Clienten antwortet.

Mein Server:
Delphi-Quellcode:
program Project1;

uses
  Windows,
  WinSock,
  Unit1 in 'Unit1.pas';

var
  wsaData: TWSADATA;
  T:DWord;
  s: TSocket;
  sock: sockaddr_in;
  conSock: TSocket;
  Empf: string;
  senden:string;
begin
if (WSAStartup(MAKEWORD(2,0),wsaData)) <> 0 then
  exit;
s := Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if s = INVALID_SOCKET then
  exit;
ZeroMemory(@sock, sizeof(sock));
sock.sin_addr.S_addr := INADDR_ANY;
sock.sin_family := AF_INET;
sock.sin_port := htons(1223); // PORT
if (bind(s, sock, sizeof(sock))) = SOCKET_ERROR then
  exit;
if (listen(s, 10)) = SOCKET_ERROR then
  exit;
SetLength(Empf,8192);
while true do
  begin
  conSock := accept(s, nil, nil);
  if conSock <> INVALID_SOCKET then
    begin
    recv(conSock, Empf[1], 2, 0);
    if Empf='01'then
      begin
      Senden:='Hallo';
      send(conSock,Senden[1],Length(Senden),0);
      end;
    end;
end;

end.
Mein Client:
Delphi-Quellcode:
function GetData(const URL: String): string;
var
  S: TSocket;
  A: SOCKADDR_IN;
  W: TWsaData;
  H: pHostEnt;
  Senden: String;
begin
  SetLength(result,8192);
  if WsaStartup(MakeWord(1, 1), W) = 0 then
  begin
    H := GetHostByName(PChar(URL));
    if H <> nil then
    begin
      FillChar(A, SizeOf(A), 0);
      A.sin_family := AF_INET;
      A.sin_addr.S_addr := PDWord(H.h_addr_list^)^;
      A.sin_port := htons(1223);
      S := Socket(AF_INET, SOCK_STREAM, 0);
      if S <> INVALID_SOCKET then
      begin
        if Connect(S, A, SizeOf(A)) = 0 then
          begin
          Senden:='01';
          send(S,Senden[1],Length(Senden),0);
          recv(S, result[1], Length(result), 0);
          end;
        CloseSocket(S);
      end;
    end;
  end;
  WSACleanup;
end;
Vielen Dank schon mal!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz