Autor Beitrag
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 04.04.15 15:58 
Mit "sachdienlichen Hinweisen" meinst du vermutlich so Sachen wie:

  • Wieso habe ich das Gefühl für dumm verkauft zu werden???
  • Leider habe ich ab und zu den Eindruck das einige wenige glauben andere von oben herab behandeln zu können oder Fragen nicht richtg lesen.
  • Vielleicht solltest Du auch mal über Deinen Fußtext nachdenken, wenn Du einen anderen Eindruck vermitteln möchtest.
  • Unsere perl sau ist halt noch jung und sucht immer mal nach Gelegenheiten mit älteren seine Kräfte zu messen.
  • Danke für Deine Antwort, auch für die "perl sau". Schade nur, dass er nicht lesen kann.

Und da du, wie versprochen, nicht mehr darauf antworten wirst, zum "Abschied" noch ein guter Rat von mir: Immer erst an die eigene Nase fassen :wink:
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 04.04.15 19:34 
user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
selbstverständlich! Genügt die Unit oder auch die "winsock.pas" und die Projektdatei?
Am einfachsten ist es immer einfach die Dateien, die zum Projekt gehören in ein Zip zu packen und so anzuhängen. ;-)
Das ist soweit der Server, fehlt noch der Client um das zu testen.

// EDIT:
Bzw. ich sehe gerade... soll der Timer den Client machen? Das kann nicht gehen, denn dein Hauptthread hängt ja im accept. Da brauchst du ein zweites Programm oder Threads.


Zuletzt bearbeitet von jaenicke am Sa 04.04.15 19:38, insgesamt 1-mal bearbeitet
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Sa 04.04.15 19:34 
Und Eure Kindergarten-Streitereien klärt doch besser per PM, das gehört hier nicht her.

Für diesen Beitrag haben gedankt: Nersgatt
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: So 05.04.15 13:17 
Hallo Sebastian,

Dank Dir für Deine Antwort. Ich hatte schon Schwierigkeiten Dateien von anderen Compilerversionen anzupassen, daher habe ich nicht alles bereitgestellt. Aber nun ist alles in der 7z, inklusive der Delphi 4 Winsock. Wenn noch etwas fehlt, stelle ich es gern bereit.

Wie schon gesagt, alles quick and dirty, um erst mal eine Übersicht zu gewinnen und experimentieren zu können. Ich habe noch keine Threads verwendet, statt dessen werden Tasten und Timer zum Starten der Fonktionen verwendet.

Laut MS-Beispiel soll der Text im Puffer enthalten sein. Die Parameter werden von hinten (Flag=0 zuerst) auf den Stack gelegt. Vom Enpfangspuffer wird die Variablenaderesse abgelegt. Wenn ich statt dessen die Pufferadresse auf den Stack lege bleibt das Ergebnis das gleiche.

Ich hoffe auf einen guten Tipp.

Hallo WasWeißDennIch,

Dank auch Dir für Deinen Beitrag! Manch einer weiß eben nicht wann es genug ist.

Grüße von der auch heute sonnigen Nordsee

Peter
Einloggen, um Attachments anzusehen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 05.04.15 20:43 
Du hast einen Fehler mit den Buffern drin, ansonsten funktioniert das schon. Du musst bei send und recv keinen Pointer angeben, sondern einen Puffer. Nimm als Buffer einfach einen AnsiString. Senden:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  Res: Integer;
  Buf: AnsiString;
begin
  Memo1.Lines.Add('Sende: ' + Edit3.Text);
  Buf := Edit3.Text;
  Res := send(CSock, Buf[1], Length(Buf), 0);
Empfangen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
  Res: Integer;
  recvbuf: AnsiString;
begin
  SetLength(recvbuf, BuffSize);
  Res := recv(CSock, recvbuf[1], BuffSize, 0);
  if Res >= 0 then
  begin
    Memo1.Lines.Add(IntToStr(Res) + ' Zeichen empfangen.');
    SetLength(recvbuf, Res);
    Memo1.Lines.Add('Text: ' + recvbuf);
Wichtig ist bei recv auch der letzte Parameter. Ich weiß ehrlich gesagt nicht was dein MSG_OOB (das ist ja die 1) bewirkt, aber damit bleibt der Aufruf hängen.
Außerdem müsstest du das noch in einen Thread packen, damit dein Server noch reagiert oder MSG_PEEK benutzen um erst einmal zu schauen was da ist.

Für diesen Beitrag haben gedankt: Peter18
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Mo 06.04.15 10:47 
Hallo Sebastian,

danke für Deine Hilfe! Von C nach Delphi ist doch nicht so tivial. Auf "SetLength(recvbuf, Res);" wär ich nicht so schnell gekommen. Nun reden sie miteinander und ich kann mitlesen. :D :D :D

"MSG_OOB" hatte ich nur mal probiert, weil ich die Flags nicht gefunden habe. Ich wollte wissen, was "MSG_PEEK" ist aber Banane. Irgend wann hatte ich die Flags gesehen, aber nicht wieder gefunden. Falls Du einen Link oder eine Konstantendeklaration hast wär ich Dir dankbar!

Grüße von der noch immer sonnigen Nordsee

Peter
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 06.04.15 11:03 
Du kannst einfach in die in der Doku angegebene Headerdatei aus dem Windows SDK schauen. MSG_OOB = $0001, MSG_PEEK = $0002 und MSG_WAITALL = $0100.
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Mo 06.04.15 12:48 
Hallo Sebastian,

Dank Dir!

Grüße von der Nordsee

Peter
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Mo 06.04.15 17:45 
Ein freundliches Hallo an alle,

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Ich weiß ehrlich gesagt nicht was dein MSG_OOB (das ist ja die 1) bewirkt, aber damit bleibt der Aufruf hängen.

Beim studieren der Winsockbeschreibungen bin ich darauf gestoßen (sehr speziel):
msdn.microsoft.com/e...02%28v=vs.85%29.aspx

Grüße von der Nordsee

Peter