>>>** form.init method >>>ACTIVATE SCREEN >>>CLEAR >>>ON SHUTDOWN QUIT >>>SET TALK OFF >>>SET ECHO OFF >>> >>>with ThisForm >>> .OleControl1.LocalAddress = "194.106.108.233" &&& your ip >>> .OleControl1.LocalPort = 0 >>> .OleControl1.Create() >>> .OleControl1.RemoteNameAddrXlate = .T. >>> .OleControl1.RemoteName = "pepe.online.ee" >>> .OleControl1.RemotePort = 7 >>> .OleControl1.Blocking = .F. >>> .OleControl1.ConnectTimeout = 5 >>> .OleControl1.object.Connect() >>>endwith >>> >>>DO WHILE THIS.olecontrol1.state!=4 >>> IF INKEY(0.5)=27 >>> RETURN .F. >>> ENDIF >>> ? 'Connecting', THIS.olecontrol1.lasterrorstring >>>ENDDO >>> >>>m.cBuffer = REPLICATE( CHR(0), 100 ) >>>local dummyWait >>> >>>DO WHILE INKEY(.5)!=27 and THIS.olecontrol1.state=4 >>> This.OleControl1.SendBuffer = m.CBuffer &&& you don't need CREATEBINARY >>> THIS.OleControl1.object.Send() >>> dummyWait = inkey(3) &&& waits 3 seconds to give some time to the send >>> CStr = '' >>> DO WHILE INKEY(.5)!=27 and THIS.olecontrol1.state=4 AND EMPTY(cStr) >>> THIS.OleControl1.object.receive() >>> cStr = this.olecontrol1.receivebuffer >>> ? THIS.olecontrol1.lasterrorstring >>> ENDDO >>> >>> ?'Received', len(cStr), cStr >>> IF cStr!=m.cBuffer >>> ?? 'Error' >>> ELSE >>> ?? 'OK' >>> ENDIF >>> ENDDO >>>RETURN .F. >>>>>>
>>>>** form.init method >>>>ACTIVATE SCREEN >>>>CLEAR >>>>ON SHUTDOWN QUIT >>>>SET TALK OFF >>>>SET ECHO OFF >>>> >>>>with ThisForm >>>> .OleControl1.LocalAddress = "194.106.108.233" &&& your ip >>>> .OleControl1.LocalPort = 0 >>>> .OleControl1.Create() >>>> .OleControl1.RemoteNameAddrXlate = .T. >>>> .OleControl1.RemoteName = "pepe.online.ee" >>>> .OleControl1.RemotePort = 7 >>>> .OleControl1.Blocking = .F. >>>> .OleControl1.ConnectTimeout = 5 >>>> .OleControl1.object.Connect() >>>>endwith >>>> >>>>DO WHILE THIS.olecontrol1.state!=4 >>>> IF INKEY(0.5)=27 >>>> RETURN .F. >>>> ENDIF >>>> ? 'Connecting', THIS.olecontrol1.lasterrorstring >>>> ENDDO >>>> >>>>cBuffer = REPLICATE( CHR(0), 100 ) >>>> >>>>DO WHILE INKEY(.5)!=27 and THIS.olecontrol1.state=4 >>>> THIS.olecontrol1.send( CREATEBINARY(m.cBuffer) ) >>>> CStr = '' >>>> * ?????????????????????????????????????????????????? >>>> * The following loop will run infinitely. Why ? >>>> DO WHILE INKEY(.5)!=27 and THIS.olecontrol1.state=4 AND EMPTY(cStr) >>>> THIS.olecontrol1.receive(1) >>>> cStr = this.olecontrol1.receivebuffer >>>> ? THIS.olecontrol1.lasterrorstring >>>> ENDDO >>>> >>>> ?'Received', len(cStr), cStr >>>> IF cStr!=m.cBuffer >>>> ?? 'Error' >>>> ELSE >>>> ?? 'OK' >>>> ENDIF >>>> ENDDO >>>>RETURN .F. >>>>>>>>
>>>>>with ThisForm >>>>> .OleControl1.LocalAddress = "192.168.1.1" &&& your ip >>>>> .OleControl1.LocalPort = 0 >>>>> .OleControl1.Create() >>>>> *** if you connect by ip address, you should do then >>>>> .OleControl1.RemoteNameAddrXlate = .F. >>>>> .OleControl1.RemoteAddress = "212.155.99.148" &&& other side's ip >>>>> *** otherwise if you connect by name >>>>> .OleControl1.RemoteNameAddrXlate = .T. >>>>> .OleControl1.RemoteName = "www.eetasoft.ee" >>>>> >>>>> .OleControl1.RemotePort = 7 >>>>> .OleControl1.Blocking = .F. >>>>> *** now set a connection timeout, let's say 5 seconds >>>>> .OleControl1.ConnectTimeout = 5 >>>>> >>>>> *** finally connect... >>>>> .OleControl1.object.Connect() >>>>>endwith >>>>>>>>>>Now, if you check ThisForm.OleControl1.State, it should really be 4 and then you can go on with the data transmissions.