const HTML_EDIT = 800 const MESSAGE_EDIT = 801 int datasocket=-1 int ncsStatus int l,t,w,h window win openwindow win,0,0,600,300,@SIZE|@MINBOX|@MAXBOX,0,"Network Client Example",&handler GetClientSize win,l,t,w,h Control win,@EDIT,"",0,0,w,h/2,@CTEDITMULTI|@CTEDITRO|@HSCROLL|@VSCROLL,HTML_EDIT Control win,@EDIT,"",0,h/2,w,h/2,@CTEDITMULTI|@CTEDITRO|@HSCROLL|@VSCROLL,MESSAGE_EDIT 'initialize the client server library ncsStatus = NCSInit(1,0) if ncsStatus<0 AppendEdit(win,MESSAGE_EDIT,"Error initializing Client Server library",TRUE) AppendEdit(win,MESSAGE_EDIT,NCSGetErrorText(),TRUE) else 'Attempt to connect to server AppendEdit(win,MESSAGE_EDIT,"Client Server Library initialized",TRUE) ncsStatus = NCSConnectToServer("www.ionicwind.com",80) if ncsStatus < 0 AppendEdit(win,MESSAGE_EDIT,"Error connecting to server",TRUE) AppendEdit(win,MESSAGE_EDIT,NCSGetErrorText(),TRUE) else 'Register a message to be sent when data is read to be retrieved datasocket = ncsStatus AppendEdit(win,MESSAGE_EDIT,"Connected to server, Socket ="+str$(datasocket),TRUE) ncsStatus=NCSOnDataMessage(win.hWnd, datasocket, 7000) if ncsStatus < 0 AppendEdit(win,MESSAGE_EDIT,"NCSOnDataMessage error",TRUE) AppendEdit(win,MESSAGE_EDIT,NCSGetErrorText(),TRUE) endif endif endif if datasocket > -1 'send server a command AppendEdit(win,MESSAGE_EDIT,"Sending GET command",TRUE) string toSend = "GET / HTTP/1.1\nHost:www.ionicwind.com\n\n" NCSSendData(datasocket,toSend,len(toSend)+1) endif waituntil IsWindowClosed(win) 'cleanup if datasocket > -1 NCSCloseSocket(datasocket) endif NCSFree() end istring buffer[10000] sub handler select @message case @idcreate centerwindow win case @idclosewindow closewindow win case @idsize GetClientSize win,l,t,w,h SetSize win,0,0,w,h/2,HTML_EDIT SetSize win,0,h/2,w,h/2,MESSAGE_EDIT case 7000 'data from server ncsStatus = NCSReadData(datasocket,buffer,9999,500) if ncsStatus > 0 AppendEdit(win,MESSAGE_EDIT,"Received"+str$(ncsStatus)+" bytes",TRUE) buffer[ncsStatus]=0 AppendEdit(win,HTML_EDIT,buffer,FALSE) 'Arm the data message for further data. ncsStatus=NCSOnDataMessage(win.hWnd, datasocket, 7000) elseif ncsStatus < 0 AppendEdit(win,MESSAGE_EDIT,"ERROR :" + str$(ncsStatus),TRUE) endif endselect endsub 'subroutine to easily append text in an edit control. CONST WM_GETTEXTLENGTH = 0xE Sub AppendEdit(window win,int id,string text,int addNL) int _textlen:_textlen =SendMessage(win, WM_GETTEXTLENGTH,0,0,id) ControlCmd win, id, @EDSETSELECTION, _textlen, _textlen if(addNL) ControlCmd win, id, @EDREPLACESEL, text + "\n" else ControlCmd win, id, @EDREPLACESEL, text endif Endsub