AGB  ·  Datenschutz  ·  Impressum  







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

socket error 10053

Ein Thema von Russel-Athletic2 · begonnen am 21. Jul 2003 · letzter Beitrag vom 4. Aug 2003
Antwort Antwort
Russel-Athletic2

Registriert seit: 9. Jul 2003
12 Beiträge
 
#1

socket error 10053

  Alt 21. Jul 2003, 17:24
ich bekomme den socket error 10053 ich hoffe um hilfe.

Server:
Delphi-Quellcode:
procedure Tform1.bsvcontrClick(Sender: TObject);
begin
if serversock.Active then
begin
        bsvcontr.caption:='Server ist offline';
        serversock.active:=false;
        serversock.socket.close;
end else begin
        if serversock.Active=false then
        begin
                bsvcontr.caption:='Server ist online';
                serversock.Port:=628;
                serversock.active:=true;
                serversock.Open;
        end;
end;
end;

procedure Tform1.serversockClientWrite(Sender: TObject;
  Socket: TCustomWinSocket);
  var rec1:iprec;
  z:integer;
  begin
  serversock.Socket.ReceiveBuf(rec1,sizeof(rec1));
  z:=serversock.socket.ActiveConnections;
  stringgrid.cells[z,1]:=rec1.clientip;
  stringgrid.cells[z,2]:=rec1.clienthost;
end;

procedure Tform1.serversockClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var rec1:iprec;
  z:integer;
  begin
  serversock.Socket.ReceiveBuf(rec1,sizeof(rec1));
  z:=serversock.socket.ActiveConnections;
  stringgrid.cells[z,1]:=rec1.clientip;
  stringgrid.cells[z,2]:=rec1.clienthost;
end;
Client:
Delphi-Quellcode:
procedure Tform1.loginbuttonClick(Sender: TObject);
var rec1:iprec;
begin
clientsock.Port:=628;
clientsock.Host:='127.0.0.1';
clientsock.active:=true;
end;

procedure Tform1.clientsockConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var rec1:iprec;
begin
rec1.clientip:=ip;
rec1.clienthost:=host;
clientsock.open;
clientsock.Socket.SendBuf(rec1,sizeof(rec1));
end;
  Mit Zitat antworten Zitat
Russel-Athletic2

Registriert seit: 9. Jul 2003
12 Beiträge
 
#2

Re: socket error 10053

  Alt 28. Jul 2003, 13:08
Keine Antwort?
Socket Error 10053 heißt, dass das Programm die Verbindung abgebrochen hat und folglich der Server error 10057 bekommt, da er nicht bekommen kann.

Ich hoffe auf Hilfe
  Mit Zitat antworten Zitat
Russel-Athletic2

Registriert seit: 9. Jul 2003
12 Beiträge
 
#3

Re: socket error 10053

  Alt 4. Aug 2003, 12:50
*nachobenschieb*
  Mit Zitat antworten Zitat
BungeeBug

Registriert seit: 19. Dez 2002
Ort: zuhause?!
227 Beiträge
 
Delphi 6 Personal
 
#4

Re: socket error 10053

  Alt 4. Aug 2003, 13:15
Hi,

wenn mich nicht alles täuscht is das spammen nicht ganz erlaubt oder?

und zu deinem Problem, da wirst du dir doch wohl selbst mal nen paar Gedanken machen können?! Immerhin bekommt hier niemand Geld für kompetente Antworten... so evl. hilft dir das hier
http://support.osprey.net/socket/socket.html
MfG BungeeBug
Wer andern eine Grube gräbt sollte auf Gasleitungen achten!!!!
  Mit Zitat antworten Zitat
Russel-Athletic2

Registriert seit: 9. Jul 2003
12 Beiträge
 
#5

Re: socket error 10053

  Alt 4. Aug 2003, 13:26
Ne das hilft mir gar nicht, weil die Meldung sagt, dass das Programm die Verbindung unterbricht, ich weiß aber nicht wo sowas in meinem Programm vorkommt. => Ich hab mir Gedanken gemacht und auch nen Freund gefragt. Der hatte aber auch keine Lösung.
Außerdem wollte ich ja das der Thread nicht in Vergessenheit gerät. Nächste mal weiß ich es besser.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: socket error 10053

  Alt 4. Aug 2003, 13:28
Zitat von BungeeBug:
wenn mich nicht alles täuscht is das spammen nicht ganz erlaubt oder?
In diesem Fall schon. Wenn man ca. einmal in der Woche versucht einen absolut unbeantworteten Thread nach oben zu bekommen.

*gnade erteilt*

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: socket error 10053

  Alt 4. Aug 2003, 13:30
Der Fehler kommt am Server oder am Client? Wann genau, bin nicht so recht schlau geworden aus obigen

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Russel-Athletic2

Registriert seit: 9. Jul 2003
12 Beiträge
 
#8

Re: socket error 10053

  Alt 4. Aug 2003, 13:54
Am Client erscheint der error code 10053, was bedeutet, dass der Server die Verbindung abgebrochen hat. Darauf sagt der Server dann praktisch dass er keinen Record empfangen konnte, da der Cleint ja nicht mehr connected ist.

@Mod: Wäre nett wenn die obige Fehlerbeschreibung am Anfang meines ersten Threads gesetzt werden könnte, da ich ihn nicht mehr so editieren kann, und vielleicht der 2 Thread von mir ganz weg, wo ich die fehlermeldung erkläre.
Im Vorraus schonmal Danke.
  Mit Zitat antworten Zitat
BungeeBug

Registriert seit: 19. Dez 2002
Ort: zuhause?!
227 Beiträge
 
Delphi 6 Personal
 
#9

Re: socket error 10053

  Alt 4. Aug 2003, 15:30
Hi,
zu deinem Code is folgendes zusagen

Delphi-Quellcode:
procedure Tform1.bsvcontrClick(Sender: TObject);
begin
if serversock.Active then
begin
        bsvcontr.caption:='Server ist offline';
        serversock.active:=false;
        serversock.socket.close;
end else begin
        if serversock.Active=false then
        begin
                bsvcontr.caption:='Server ist online';
                serversock.Port:=628;
                serversock.active:=true;
                serversock.Open;
        end;
end;
end;
In dem ersten BEGIN END Block solltest du erst die Sockets schliessen dann den Socket auf false setzten

Delphi-Quellcode:
procedure Tform1.serversockClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var rec1:iprec;
  z:integer;
  begin
  serversock.Socket.ReceiveBuf(rec1,sizeof(rec1));
  z:=serversock.socket.ActiveConnections;
  stringgrid.cells[z,1]:=rec1.clientip;
  stringgrid.cells[z,2]:=rec1.clienthost;
end;
wer soll denn hier lesen?! Der Server oder der Client? In der Procedure Liest der Server wenn der Client list ... aber was? Der Server sollte evl. besser lesen wenn der Client sendet oder?

Delphi-Quellcode:
procedure Tform1.clientsockConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var rec1:iprec;
begin
rec1.clientip:=ip;
rec1.clienthost:=host;
clientsock.open;
clientsock.Socket.SendBuf(rec1,sizeof(rec1));
end;
So das is alles was mit ao aufanhieb auffällt ... evl. kannst du noch nen bissel mehr Code oder gleich das ganze Prog posten dann kann man besser helfen und sorry wenn ich dich grad nen bissel häftig angefahren hab!!
MfG BungeeBug
Wer andern eine Grube gräbt sollte auf Gasleitungen achten!!!!
  Mit Zitat antworten Zitat
Russel-Athletic2

Registriert seit: 9. Jul 2003
12 Beiträge
 
#10

Re: socket error 10053

  Alt 4. Aug 2003, 16:40
Also hier kommt der ganze Quallecode, allerdings hab ich jetzt nach dne paar Änderungen den error 10049 (Cannot assign requested address) wenn ich auf den Login Button beim Client clicke. Wegen der IP, ich hab es im netzwerk versucht, und davor it 127.0.0.1 als IP.

Server
Delphi-Quellcode:
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, FileCtrl,options,Registry,Winsock, ScktComp, IdBaseComponent,
  IdComponent, IdTCPServer, Grids, IdTCPConnection, IdTCPClient, ComCtrls,shellapi;
 type
  mainRecord = Packed Record
  what:integer;
  clientip:string[250];
  film1:string[250];
  vote:integer;
  end;
  type
  iprec = Packed Record
  clientip:string[100];
  clienthost:string[100];
  end;

  type
  Tform1 = class(TForm)
    options: TButton;
    Label1: TLabel;
    filmliste: TFileListBox;
    bsvcontr: TButton;
    Label2: TLabel;
    lIP: TLabel;
    lHostname: TLabel;
    Label3: TLabel;
    stringgrid: TStringGrid;
    Label4: TLabel;
    Button2: TButton;
    countvotebutton: TButton;
    Edit1: TEdit;
    serversock: TServerSocket;
    procedure optionsClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure serverClientRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure bsvcontrClick(Sender: TObject);
    procedure countvotebuttonClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure serversockClientWrite(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  form1: Tform1;
  ip,host:string;
  clientsactive:integer;

implementation

{$R *.DFM}

//ip funktion

function GetComputerNetName: string;
var
  buffer: array[0..255] of char;
  size: dword;
begin
  size := 256;
  if GetComputerName(buffer, size) then
    Result := buffer
  else
    Result := '';
end;

function GetLocalIPs: string;
type
  PPInAddr = ^PInAddr;
var
  wsadata : TWSAData;
  hostinfo : PHostEnt;
  addr : PPInAddr;
begin
  Result := '';

  if(WSAStartUp(MAKEWORD(1,1),wsadata) = 0) then
  try
    hostinfo := gethostbyname(nil);
    if(hostinfo <> nil) then begin
      addr := pointer(hostinfo^.h_addr_list);

      while(addr^ <> nil) do begin
        Result := Result + inet_ntoa(addr^^) + ^M^J;
        inc(addr);
      end;
    end;
  finally
    WSACleanUp;
  end;
end;

procedure Tform1.optionsClick(Sender: TObject);
begin
form2.showmodal;
end;


procedure Tform1.FormActivate(Sender: TObject);
var regist: TRegistry;
var ip: string;
begin

clientsactive:=0;

//Stringgrid schreiben
stringgrid.cells[0,0]:='Name';
stringgrid.cells[0,1]:='IP';
stringgrid.cells[0,2]:='Voted for:';

stringgrid.cells[1,0]:='Client1';

//regestry lesen
  {regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey('Software\Reaper Productions\Vote Tool', true);
  filmliste.directory:=regist.Readstring('direct');

  regist.OpenKey('Software\Reaper Productions\Vote Tool\VLC', true);
  vlcpath:=regist.readstring('vlcpa');
  vlcname:=regist.readstring('vlcna');
  regist.free;}


filmliste.mask:='*.mpg;'+'*.mpeg;'+'*.avi;';

//ip addresse einlesen und ausgeben
ip:=GetLocalIPs;
host:=GetComputerNetName;
lhostname.caption :=host;
lip.caption:=ip;
end;

procedure Tform1.serverClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var z:integer;
rec1:mainrecord;
  begin

//filmliste


end;

procedure Tform1.bsvcontrClick(Sender: TObject);
begin
if serversock.Active then
begin
        bsvcontr.caption:='Server ist offline';
        serversock.active:=false;
        serversock.socket.close;
end else begin
        bsvcontr.caption:='Server ist online';
        serversock.Port:=628;
        serversock.active:=true;
        serversock.Open;

end;
end;

procedure Tform1.countvotebuttonClick(Sender: TObject);
var z,max,maxnr:integer;
voted,votecomm:string;
votefeld:array[1..100] of Integer;
begin

//alles auf 0 setzen
max:=0;
maxnr:=0;
for z:=1 to 50 do
begin
        votefeld[z]:=0;
end;

//filmvotes zählen
for z:=1 to (stringgrid.colcount-1) do
begin
        inc(votefeld[(strtoint(stringgrid.cells[z,2]))]);
end;

//maximum suchen
for z:=1 to (stringgrid.colcount-1) do
begin
        if votefeld[z]>max then
        begin
                max:=votefeld[z];
                maxnr:=z;
        end;
end;
showmessage('Der gevotete Film ist' +filmliste.items[maxnr]+' ('+inttostr(maxnr)
+') mit '+inttostr(max)+' votes. Stream wird jetzt gestartet auf 239.239.239.1:1234');
filmliste.itemindex:=maxnr;

//stream starten
try
voted:=filmliste.directory+'/'+filmliste.items[maxnr];
edit1.Text:=voted;
ShellExecute(Application.Handle, 'open' ,
PChar(vlcname),
Pchar('-vvv '+voted+' --sout udp://239.239.0.1 --ttl 1'),
PChar(vlcpath), sw_ShowNormal);
except
showmessage('Befindet sich nicht auf dem Server Rechner deswegen kein stream möglich');
end;
end;

procedure Tform1.Button2Click(Sender: TObject);
var rec1:mainrecord;
begin
rec1.film1:=filmliste.items[0];
serversock.Socket.SendBuf(rec1,sizeof(rec1));
end;

procedure Tform1.serversockClientWrite(Sender: TObject;
  Socket: TCustomWinSocket);
  var rec1:iprec;
  z:integer;
  begin
  serversock.Socket.ReceiveBuf(rec1,sizeof(rec1));
  z:=1;
  //serversock.socket.ActiveConnections;
  stringgrid.cells[z,1]:=rec1.clientip;
  stringgrid.cells[z,2]:=rec1.clienthost;
end;

end.

Client
Delphi-Quellcode:
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, FileCtrl,options,Registry,Winsock, ScktComp, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdTCPServer, Menus;
 type
  mainRecord = Packed Record
  what:integer;
  clientip:string[250];
  film1:string[250];
  vote:integer;
  end;
  type
  iprec = Packed Record
  clientip:string[100];
  clienthost:string[100];
  end;

  type
  Tform1 = class(TForm)
    options: TButton;
    Label1: TLabel;
    filmliste: TFileListBox;
    bvote: TButton;
    Label2: TLabel;
    eip: TEdit;
    lIP: TLabel;
    lHostname: TLabel;
    Label3: TLabel;
    loginbutton: TButton;
    clientsock: TClientSocket;

    procedure optionsClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure eipChange(Sender: TObject);
    procedure bvoteClick(Sender: TObject);
    procedure loginbuttonClick(Sender: TObject);
    procedure clientsockWrite(Sender: TObject; Socket: TCustomWinSocket);
    procedure clientsockRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure clientsockConnect(Sender: TObject; Socket: TCustomWinSocket);
  
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  form1: Tform1;
  ip,host:string;



implementation

{$R *.DFM}

//ip funktion

function GetComputerNetName: string;
var
  buffer: array[0..255] of char;
  size: dword;
begin
  size := 256;
  if GetComputerName(buffer, size) then
    Result := buffer
  else
    Result := '';
end;

function GetLocalIPs: string;
type
  PPInAddr = ^PInAddr;
var
  wsadata : TWSAData;
  hostinfo : PHostEnt;
  addr : PPInAddr;
begin
  Result := '';

  if(WSAStartUp(MAKEWORD(1,1),wsadata) = 0) then
  try
    hostinfo := gethostbyname(nil);
    if(hostinfo <> nil) then begin
      addr := pointer(hostinfo^.h_addr_list);

      while(addr^ <> nil) do begin
        Result := Result + inet_ntoa(addr^^) + ^M^J;
        inc(addr);
      end;
    end;
  finally
    WSACleanUp;
  end;
end;


procedure Tform1.optionsClick(Sender: TObject);
begin
form2.showmodal;
end;


procedure Tform1.FormActivate(Sender: TObject);
var regist: TRegistry;
var ip: string;
begin
//regestry lesen
  {regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey('Software\Reaper Productions\Vote Tool', true);
  filmliste.directory:=regist.Readstring('direct');


  regist.OpenKey('Software\Reaper Productions\Vote Tool\VLC', true);
  vlcpath:=regist.readstring('vlcpa');
  vlcname:=regist.readstring('vlcna');
  regist.free;}



//ip addresse einlesen und ausgeben
ip:=GetLocalIPs;
host:=GetComputerNetName;
lhostname.caption :=host;
lip.caption:=ip;
end;

procedure Tform1.eipChange(Sender: TObject);
begin
clientsock.Host:=eip.text;
end;

procedure Tform1.bvoteClick(Sender: TObject);
var rec1:mainrecord;
begin
if filmliste.itemindex = -1 then begin showmessage('einen Film auswählen'); end;
//rec bestimmen

        //what für liste senden definieren
        rec1.what:=2;

        //client daten bereitstellen
        rec1.vote:=filmliste.itemindex;

//senden
clientsock.Socket.SendBuf(rec1,sizeof(rec1));
end;

procedure Tform1.loginbuttonClick(Sender: TObject);
var rec1:iprec;
begin
clientsock.Port:=628;
clientsock.Host:='192.168.0.1';
clientsock.Active:=true;
clientsock.open;

end;

procedure Tform1.clientsockWrite(Sender: TObject;
  Socket: TCustomWinSocket);
var rec1:mainrecord;
  begin
{filmliste.Items.clear;
        //lesen und in liste schreiben
        clientsock.Socket.ReceiveBuf(rec1,SizeOf(rec1));
        filmliste.Items.Add(rec1.film1); }

end;

procedure Tform1.clientsockRead(Sender: TObject; Socket: TCustomWinSocket);
var rec1:mainrecord;
begin
showmessage('hallo');
end;

procedure Tform1.clientsockConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var rec1:iprec;
begin
rec1.clientip:=ip;
rec1.clienthost:=host;
clientsock.Socket.SendBuf(rec1,sizeof(rec1));
end;

end.
  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 07:53 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