> Hi again,
>
> could someone run the code I sent and check if there is a bug in root on
> windows? I asked Valery and he replied he has not time to support root
> on windows.
Let me clarify, the socket (server) functionality had not been completed
for Windows. It was highlighted many times on this list. Nobody said "it does work".
The reason is simple - there was no demand (as usually :-)
So it is not a question of support rather a new development
May be it is small (very small) one.
Valeri
> I do not think there is a serious problem with socket select() in root
> main event loop, just a minor error (if any). Could you check please?
> /Anton
> Gentlemen,
>
> I am attaching a few lines of code and a makefile (for windows) which
> doesn't work on windows but does work on Linux.
>
> Note: I tested this code with the latest root binary on win98 and winNT
> and with root 3.01 on Mandrake Linux.
>
> Fons/Valery, could you comment on this please. It is very important for
> me to know if this is a bug or feature.
>
> Cheers,
> Anton
>
> #include "TROOT.h"
> #include "TRint.h"
> #include "TSystem.h"
> #include "TStyle.h"
> #include "TError.h"
> #include "TEnv.h"
> #include "TSysEvtHandler.h"
> #include "TSocket.h"
> #include "TServerSocket.h"
>
> class TSocketHandler : public TFileHandler {
> private:
> TSocket *fSocket; //!socket being handled
>
> public:
>
> TSocketHandler(TSocket *Socket);
>
> virtual Bool_t Notify();
>
> Bool_t ReadNotify() { return Notify(); }
> Bool_t WriteNotify() { return Notify(); }
>
> TSocket *GetSocket() const { return fSocket; }
> };
>
> TSocketHandler::TSocketHandler(TSocket *Socket) :
> TFileHandler(Socket->GetDescriptor(), 1)
> {
> fSocket = Socket;
>
> gSystem->AddFileHandler(this);
> }
>
> Bool_t
> TSocketHandler::Notify()
> {
> printf("Connection request\n");
>
> return kTRUE;
> }
>
> int main( int argc, char ** argv )
> {
>
> TROOT ROOT("R-Quant", "R-Quant Data Analysis Studio");
>
> TRint App("R-Quant Data Analysis Studio", &argc, argv, 0, 0, kTRUE);
>
> TServerSocket *ServerSocket = new TServerSocket(9999, kTRUE);
> TSocketHandler *Handler = new TSocketHandler(ServerSocket);
>
> App.Run(kTRUE);
>
> return 0;
> }
>
>
>
>
> ObjSuf = obj
> SrcSuf = cxx
> ExeSuf = exe
> DllSuf = dll
> OutPutOpt = -out:
>
> # Win32 system with Microsoft Visual C/C++
> !include <win32.mak>
>
> # Compilation options (debug/release)
> !include "..\option.mak"
>
> INCFLAGS = -I$(ROOTSYS)/include
>
> CC = $(cc)
> CXX = $(cc)
> CXXFLAGS = $(CXXOPT) $(cvarsdll) -nologo -G5 -GR -MD -DWIN32
> -DVISUAL_CPLUSPLUS -D_WINDOWS -D_FINANCE_ $(INCFLAGS)
>
> LD = $(link)
> LDFLAGS = $(LDOPT) $(conlflags) -nologo -pdb:none
> SOFLAGS = $(dlllflags:-pdb:none=)
> ROOTLIBS = $(ROOTSYS)/lib/libCore.lib \
> $(ROOTSYS)/lib/libCint.lib $(ROOTSYS)/lib/libHist.lib \
> $(ROOTSYS)/lib/libGraf.lib $(ROOTSYS)/lib/libGraf3d.lib
> \
> $(ROOTSYS)/lib/libGpad.lib $(ROOTSYS)/lib/libTree.lib \
> $(ROOTSYS)/lib/libRint.lib
> $(ROOTSYS)/lib/libPostscript.lib \
> $(ROOTSYS)/lib/libMatrix.lib
> $(ROOTSYS)/lib/libPhysics.lib \
> $(ROOTSYS)/lib/libGui.lib
>
>
> LIBS = $(ROOTLIBS) $(QTLIBS) $(RQUANTLIBS) $(guilibsdll)
> MSVCIRT.LIB
>
> #------------------------------------------------------------------------------
>
> RQUANTO = test.$(ObjSuf)
>
> RQUANT = test.$(ExeSuf)
>
> $(RQUANT): $(RQUANTO)
> $(LD) $(LDFLAGS) $(RQUANTO) $(LIBS)
> $(OutPutOpt)$(RQUANT)
> @echo "RQUANT done"
>
>
>
> # ---------------------------------- RQUANT
> ----------------------------------------------------
>
>
> # RQuant
>
> test.$(ObjSuf) : test.cxx
> $(CXX) test.cxx $(CXXFLAGS) -c
>
>
>
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:41 MET