>>> SByteCount := TCPServer.Receive(@SBuffer, SizeOf(SBuffer) - 1);

>> You call Receive on the server socket. Wrong. You have to call Receive on
>> the client socket. Have a look at TcpSrv sample program.

>   My client is using the receive method But I want the server to receive
the values

That's what I understood. But you missed the point I was telling you. A
server socket never receive any data. It only receive connection which are
passed to a client socket (TTcpSrvClient in your case). You must calle
Receive on behalf of a  TTcpSrvClient instance. This is done in the sample
program TcpSrv. Just have a look at the data available code.

>   May be I didn't send complete code and so you could not understand my
problem

Your error is in the line I quoted ealier and which is in the first line of
this message.

Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html
--
[EMAIL PROTECTED]
Author of ICS (Internet Component Suite, freeware)
Author of MidWare (Multi-tier framework, freeware)
http://www.overbyte.be



----- Original Message ----- 
From: "S S" <[EMAIL PROTECTED]>
To: "ICS support mailing" <twsocket@elists.org>
Sent: Tuesday, August 08, 2006 3:15 PM
Subject: Re: [twsocket] TWSocket Server receives -1 instead
ofreceivinghexadecimal values (array)


> Hi,
>
>   My client is using the receive method But I want the server to receive
the values
>   May be I could not explain my problem clearly.I want my created server
to connect to my created client in this case reader and receive response
continously.
>   Moreover the values that the reader sends are hexdecimal.
>   how can I do this??
>
>   I have done following
>
>   1)Created the client-192.168.100.75/1000 which sends commands to the
Reader to create its notification channel (in this case it acts as server)
and receive the response.This is working fine
>
>   2)Create a tcp server-192.168.100.1/3000 which recives the stream of
hexadecimal values from reader(in this case it acts as client)continously.I
have problem in reciving the data from the reader in case of server
>
>   So,basically I need to creat a client, connect ,send commands,receive
respnse and
>   also create server,connect the client to server,and the server should
receive response from the client
>
>   May be I didn't send complete code and so you could not understand my
problem
>   Please help me where am I going wrong?
>
>
>   As mentioned,
>   My application needs to act as client and send some
> commands to create notification channel to the host reader(IP
> 192.168.100.75/Port 1000, then receive the response from the host reader.
> But before it sends commands to the host reader,it need to start the
> server at IP Address 192.168.100.1/Port 3000,so that once the commands for
> notification channel is executed,(my application) the server can receive
the
> tags send by the reader.
>
>  My application can successfully connect to the host reader as client
> and send the commands and receive the response.It can also create and
> connect to the server,but The problem is,The server cannot receive any
output from the reader client.
> > The SBuffer shows all 0 and SByteCount is -1.
> > I want to continously receive hexadecimal values from the reader.
> >
> > I am attaching a section of my code.
> > Please help.Needed it urgently
> >
>
>   I
>
> Francois Piette <[EMAIL PROTECTED]> wrote:
>   > SByteCount := TCPServer.Receive(@SBuffer, SizeOf(SBuffer) - 1);
>
> You call Receive on the server socket. Wrong. You have to call Receive on
> the client socket. Have a look at TcpSrv sample program.
>
> Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html
> --
> [EMAIL PROTECTED]
> Author of ICS (Internet Component Suite, freeware)
> Author of MidWare (Multi-tier framework, freeware)
> http://www.overbyte.be
>
>
> ----- Original Message ----- 
> From: "S S"
> To:
> Sent: Tuesday, August 08, 2006 10:10 AM
> Subject: [twsocket] TWSocket Server receives -1 instead of
> receivinghexadecimal values (array)
>
>
> > Hi all,
> >
> > I am new to delphi.My application needs to act as client and send some
> commands to create notification channel to the host reader(IP
> 192.168.100.75/Port 1000, then receive the response from the host reader.
> > But before it sends commands to the host reader,it need to start the
> server at IP Address 192.168.100.1/Port 3000,so that once the commands for
> notification channel is executed,(my application) the server can receive
the
> tags send by the reader.
> >
> > Ma application can successfully connect to the host reader as client
> and send the commands and receive the response.It can also create and
> connect to the server,
> > but The problem is,The server cannot receive any output from the reader
> client.
> > The SBuffer shows all 0 and SByteCount is -1.
> > I want to continously receive hexadecimal values from the reader.
> >
> > I am attaching a section of my code.
> > Please help.Needed it urgently
> >
> >
> > unit CAENUnit;
> > interface
> > uses
> > Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
> Forms,
> > Dialogs, DynamicSkinForm, WSocket, WSocketS, StdCtrls, SkinBoxCtrls,
> > ExtCtrls, SkinCtrls, ComCtrls, ToolsUnit, StrUtils, DB, Grids, DBGrids,
> > dbisamtb, BaseGrid, AdvGrid, DBAdvGrid;
> > type
> > TTcpSrvClient = class(TWSocketClient)
> > public
> > RcvdLine : String;
> > ConnectTime : TDateTime;
> > end;
> > TCAENForm = class(TForm)
> > DynamicSkinForm: TspDynamicSkinForm;
> > LogSplitter: TspSkinSplitter;
> > LogGroupBox: TspSkinGroupBox;
> > LogMemo: TspSkinMemo;
> > LogScrollBar: TspSkinScrollBar;
> > TopPanel: TspSkinPanel;
> > TransponderGroupBox: TspSkinGroupBox;
> > TransponderVScrollBar: TspSkinScrollBar;
> > TransponderHScrollBar: TspSkinScrollBar;
> > UniqueGroupBox: TspSkinGroupBox;
> > TagDataSource: TDataSource;
> > UniqueTagsSplitter: TspSkinSplitter;
> > UniqueTagGrid: TDBAdvGrid;
> > TransponderListView: TspSkinListView;
> > CAENClientSocket: TWSocket;
> > procedure FormCreate(Sender: TObject);
> > procedure FormResize(Sender: TObject);
> > procedure TagDataSourceDataChange(Sender: TObject; Field: TField);
> > procedure FormShow(Sender: TObject);
> > procedure FormHide(Sender: TObject);
> > procedure CAENClientSocketSessionConnected(Sender: TObject; ErrCode:
> Word);
> > procedure CAENClientSocketDataAvailable(Sender: TObject; ErrCode:
> Word);
> >
> > private
> > { Private declarations }
> > ByteCount: integer;
> > Data: string;
> > TagId: string;
> > TagSetReceived: boolean;
> > IncomingTags: TStringList;
> > SBuffer: array[0..100000]of byte;
> > Buffer: array [0..1023] of byte;
> > CreateNotfTrgCmd: array [0..54] of byte;
> > CreateReadTrgCmd: array [0..53] of byte;
> > CreateNotfChnCmd: array [0..68] of byte;
> > AddSrcNotfChnCmd: array [0..52] of byte;
> > AddNotfTrgNotfChnCmd: array [0..58] of byte;
> > AddReadTrgSrcCmd: array [0..51] of byte;
> > //AddReadPtSrcCmd: array [0..8] of byte;
> > procedure TCPServerClientConnect(Sender: TObject;
> > Client: TWSocketClient; Error: Word);
> > procedure TCPServerClientDataAvailable(Sender: TObject; Error: Word);
> > public
> > { Public declarations }
> > SByteCount: integer;
> > Processing: boolean;
> > TCPServer: TWSocketServer;
> > ServerRunning: boolean;
> > procedure Display(msg: String);
> > procedure StartTCPServer;
> > procedure StopTCPServer;
> > procedure ClearWorkArea;
> > procedure ClearAllData;
> > procedure Connect;
> > procedure Close;
> > procedure SendCommand(command: Pointer; size: integer);
> > procedure Mainloop;
> > procedure ExecuteCommand;
> > end;
> > var
> > CAENForm: TCAENForm;
> > implementation
> > uses MainUnit;
> > {$R *.dfm}
> >
> > procedure TCAENForm.StartTCPServer;
> > begin
> > TCPServer := TWSocketServer.Create(nil);
> > TCPServer.Addr := '192.168.100.1';
> > TCPServer.Port := '3000';
> > TCPServer.Proto := 'tcp';
> > TCPServer.LineMode := False;
> > //TCPServer.LineMode := True;
> > TCPServer.LineEcho := False;
> > TCPServer.LineEdit := False;
> > TCPServer.ClientClass := TTcpSrvClient;
> > TCPServer.Banner := '';
> > TCPServer.onfiltered= TCPServerClientConnect;
> > TCPServer.onfiltered= TCPServerClientDataAvailable;
> > TCPServer.Listen;
> > end;
> > procedure TCAENForm.StopTCPServer;
> > begin
> > TCPServer.Close;
> > TCPServer.Free;
> > end;
> > procedure TCAENForm.Display(msg: String);
> > begin
> > LogMemo.Lines.BeginUpdate;
> > try
> > while LogMemo.Lines.Count > 200 do
> > LogMemo.Lines.Delete(0);
> > LogMemo.Lines.Insert(0,Msg);
> > finally
> > LogMemo.Lines.EndUpdate;
> > end;
> > end;
> > procedure TCAENForm.TCPServerClientConnect(Sender: TObject;
> > Client: TWSocketClient; Error: Word);
> > begin
> > with Client as TTcpSrvClient do begin
> > Display(#13#10'Client connected.' +
> > ' Remote: ' + PeerAddr + ':' + PeerPort +
> > ' Local: ' + GetXAddr + ':' + GetXPort);
> > {Display('There is now ' +
> > IntToStr(TWSocketServer(Sender).ClientCount) +
> > ' client(s) connected.');}
> > onfiltered= TCPServerClientDataAvailable;
> > Confiltered= Now;
> > end;
> > end;
> > procedure TCAENForm.TCPServerClientDataAvailable(
> > Sender : TObject;
> > Error : Word);
> > var
> > i: integer;
> > TagVisibleCount: string;
> > TagTimeStamp: TDateTime;
> > TagValid: boolean;
> > s: string;
> > begin
> > IncomingTags.Clear;
> > with Sender as TTcpSrvClient do begin
> > SByteCount := TCPServer.Receive(@SBuffer, SizeOf(SBuffer) - 1);
> > Display('No of TagBytes Received: '+ IntToStr(SByteCount));
> > for i := 1 to SByteCount do
> > s := s + IntToHex(SBuffer[i],2);
> > Display ( s );
> > end;
> > end;
> >
> >
> >
> >
> > ---------------------------------
> > Groups are talking. We´re listening. Check out the handy changes to
> Yahoo! Groups.
> > -- 
> > To unsubscribe or change your settings for TWSocket mailing list
> > please goto http://www.elists.org/mailman/listinfo/twsocket
> > Visit our website at http://www.overbyte.be
>
> -- 
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://www.elists.org/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be
>
>
>
> ---------------------------------
> Yahoo! Music Unlimited - Access over 1 million songs.Try it free.


----------------------------------------------------------------------------
----


> -- 
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://www.elists.org/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to