AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Winsock Example Frage

Offene Frage von "CoYoTE"
Ein Thema von CoYoTE · begonnen am 11. Aug 2010 · letzter Beitrag vom 12. Aug 2010
Antwort Antwort
CoYoTE

Registriert seit: 11. Aug 2010
8 Beiträge
 
#1

AW: Winsock Example Frage

  Alt 11. Aug 2010, 10:44
Die Messagebox zeigt Garnichts an nur im Debugger ist zusehen das die Nachricht als Fragezeichen ankommt nun
weiter unten im quelltext wird aufgeteilt in StrArr[0] und StrArr[1]
den die Message kommt vom Klienten so an.
MSGBOX|nachricht,

MSGBOX wird da in StrArr[0] Gespeichert und die Nachricht in StrArr[1]

Deshalb ist auch eine if abfrage den wen StrArr[0] MSGBOX ist dann wird die Message StrArr[1] Angezeigt nur da kommen wiegesagt Aber nur Fragezeichen an.
Der Client funktioniert aber richtig.
Der schickt die richtige Message die kommt ja au an wird aber in dem Server zu Fragezeichen.
An der besagten stelle.

Ohje hoffe ihr könnt mir helfen,
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#2

AW: Winsock Example Frage

  Alt 11. Aug 2010, 10:50
An welcher Stelle denn genau? Sieht "Data" noch plausibel aus, oder steht da bereits Müll drin?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
CoYoTE

Registriert seit: 11. Aug 2010
8 Beiträge
 
#3

AW: Winsock Example Frage

  Alt 11. Aug 2010, 10:53
Die Messagebox zeigt Garnichts an nur im Debugger ist zusehen das die Nachricht als Fragezeichen ankommt nun
weiter unten im quelltext wird aufgeteilt in StrArr[0] und StrArr[1]
den die Message kommt vom Klienten so an.
MSGBOX|nachricht,

MSGBOX wird da in StrArr[0] Gespeichert und die Nachricht in StrArr[1]

Deshalb ist auch eine if abfrage den wen StrArr[0] MSGBOX ist dann wird die Message StrArr[1] Angezeigt nur da kommen wiegesagt Aber nur Fragezeichen an.
Der Client funktioniert aber richtig.
Der schickt die richtige Message die kommt ja au an wird aber in dem Server zu Fragezeichen.
An der besagten stelle.

Ohje hoffe ihr könnt mir helfen,
An dieser Stelle kommt die Message richtig an und dann weis ich nicht weiter was falsch ist:

Delphi-Quellcode:
while ((iRecv > 0) and (iRecv <> INVALID_SOCKET)) do
      begin
        ReceiveData(hSocket, @Buffer);
        ZeroMemory(@Buffer, SizeOf(Buffer));
        iRecv := Recv(hSocket, Buffer, SizeOf(Buffer), 0);
      end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#4

AW: Winsock Example Frage

  Alt 11. Aug 2010, 13:23
Kannst Du den Code des Client mal anhängen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
CoYoTE

Registriert seit: 11. Aug 2010
8 Beiträge
 
#5

AW: Winsock Example Frage

  Alt 11. Aug 2010, 13:55
wäre es den hilfreich wen ich die Projekt Dateien auf mein Server uploade dann kannst es dir laden komplett???

hier der Client:
Delphi-Quellcode:
unit frmMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus, ComCtrls,Winsock, untListen, untClient;

type
  TForm4 = class(TForm)
    StatusBar1: TStatusBar;
    ListView1: TListView;
    PopupMenu1: TPopupMenu;
    Listen1: TMenuItem;
    Disconnect1: TMenuItem;
    SendMessage1: TMenuItem;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Disconnect1Click(Sender: TObject);
    procedure SendMessage1Click(Sender: TObject);
    procedure Listen1Click(Sender: TObject);
     procedure Status(Data: AnsiString);
private
  Listen: TListener;
     { Private declarations }
  public
  hServer: TSocket;
  intPort: Integer;
        { Public declarations }
  end;

var
  Form4: TForm4;

implementation

procedure TForm4.Disconnect1Click(Sender: TObject);
var
TmpClient:TClient;
begin
if assigned(ListView1.Selected) then begin
TmpClient:=ListView1.Selected.data;
TmpClient.ListItem:=ListView1.Selected;
TmpClient.RemoveClient;
end;
end;

procedure TForm4.FormCreate(Sender: TObject);
begin
listview1.Column[2].Width := 150;
end;

procedure TForm4.Listen1Click(Sender: TObject);
var
  wsaData: TWSAData;
  TmpStr:AnsiString;
  begin

  //Declare a port to listen on
  TmpStr:=InputBox('Listen port','Specify a port to open on for connections','12345');
  if trim(TmpStr) <> 'then
  begin
  IntPort:=StrToInt(TmpStr);

  //Initialize and create our socket to accept connections with
  WSAStartup($0202, wsaData);
  Listen := TListener.Create(True);
  with Listen do
  begin
    FreeOnTerminate := True;
    wPort := intPort;
    Resume;
  end;

end;
end;

procedure TForm4.SendMessage1Click(Sender: TObject);
Var
TmpClient:TClient;
TmpStr:AnsiString;
begin
if assigned(ListView1.Selected) then begin
TmpStr:=Inputbox('Send data to server','Specify message data to send','Hello from client');
if Trim(TmpStr) <> 'then begin

//Declare our client for sending data
TmpClient:=Listview1.selected.data;
TMPClient.ListItem:=Listview1.selected;
TmpClient.SendData('MSGBOX' + '|' + TmpStr);
end;
end;
end;

procedure TForm4.Status(Data: AnsiString);
begin
  //Output our status message data
  StatusBar1.Panels.Items[0].Text := 'Socket Status: ' + Data;
end;


{$R *.dfm}

end.
Da gibt es noch 2 weitere Units für den Client will hier Neds alles zuspammen mit so viel Code.
soll ich die posten???
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#6

AW: Winsock Example Frage

  Alt 11. Aug 2010, 13:57
Ich sagte ja: anhängen Pack am besten das komplette Projekt in ein ZIP-Archiv.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
CoYoTE

Registriert seit: 11. Aug 2010
8 Beiträge
 
#7

AW: Winsock Example Frage

  Alt 11. Aug 2010, 14:03
http://professorbass.eu/winsock.rar
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#8

AW: Winsock Example Frage

  Alt 11. Aug 2010, 14:15
Im Moment habe ich noch keine Idee, daher noch einmal die Frage: steht in der Variablen Data (Ereignis TServer.ReceiveData) bereits Müll, oder kommt das erst später? Ich habe den Verdacht, dass es an der Implementierung von Explode liegen könnte.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz