>>> 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