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

Reply via email to