![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Please, does anyone know which mv database products have TCP socket communications available from Databasic? Thanks |
#3
| |||
| |||
|
#4
| |||
| |||
|
|
I think they all do, except for maybe mvBase. Not sure `bout that. UV, UD, D3, QM, jBase, and Reality all have dataBASIC socket functions or pass-thru functions for the C socket routines. If you plan on writing a socket service, then you need to heed the warnings of ghosts of services past. Writing a multi-client socket service in dataBASIC is not a straight-forward thing. Post some info on what you are planning to do and I can give you some pointers that will save you weeks of mis-routed code and hair-pulling. My favorite tool for creating socket services is inetd/xinetd or Winetd for Windows. Any text console app can be automagically turned into a stable socket service. Glen http://mvdevcentral.com http://picksource.com "Steve" <132ji433 (AT) donotspamme (DOT) com> wrote in message news:d6vmfl$esl$1 (AT) nwrdmz01 (DOT) dmz.ncs.ea.ibs-infra.bt.com... Please, does anyone know which mv database products have TCP socket communications available from Databasic? Thanks |
#5
| |||
| |||
|
|
Having spent a lot of time with sockets, I'll echo Glen's comments (so what else is new?), but I have to remark on the original question "which MV platforms support sockets?" Are you planning to start using some MV platform depending on whether it supports sockets? That's not the right way to go about things and I suspect your real question has nothing to do with this at all. Also you don't mention if you're looking for an MV app to be a socket client or socket server. There are good alternatives to writing your own socket code, including free comms components, buying special purpose components (HTTP, NNTP, SMTP, POP3, IRC...), or buying stable and supported tools that might cost just a couple hundred dollars and save you months of custom development. Please let us know what you're really doing and we'll be able to give you a much better answer. Tony "Glen B" <webmaster.at.allspec.com> wrote: I think they all do, except for maybe mvBase. Not sure `bout that. UV, UD, D3, QM, jBase, and Reality all have dataBASIC socket functions or pass-thru functions for the C socket routines. If you plan on writing a socket service, then you need to heed the warnings of ghosts of services past. Writing a multi-client socket service in dataBASIC is not a straight-forward thing. Post some info on what you are planning to do and I can give you some pointers that will save you weeks of mis-routed code and hair-pulling. My favorite tool for creating socket services is inetd/xinetd or Winetd for Windows. Any text console app can be automagically turned into a stable socket service. Glen http://mvdevcentral.com http://picksource.com "Steve" <132ji433 (AT) donotspamme (DOT) com> wrote in message news:d6vmfl$esl$1 (AT) nwrdmz01 (DOT) dmz.ncs.ea.ibs-infra.bt.com... Please, does anyone know which mv database products have TCP socket communications available from Databasic? Thanks |
#6
| |||
| |||
|
|
Are you planning to start using some MV platform depending on whether it supports sockets? That's not the right way to go about things [snip] |
#7
| |||
| |||
|
|
Are you planning to start using some MV platform depending on whether it supports sockets? That's not the right way to go about things [snip] Thanks to all for the comments. I simply need to run some existing generic Databasic code, which is proven and tested, on any mv platform which will enable me to talk to an IP service on the network. In other words, I want to retain this application which runs on Pick and I don't want to change the way it works, other than to hook in some code to talk to an IP service. Simple as that really. Steve |
#8
| |||
| |||
|
|
That's not a hard task and it should be doable on most of the flavors except for the MV<name> products. Doug wrote a TCP stack in Pick assembler, which also runs on mvBase, mvEnterprise, etc. Stop by www.modsoft.com and check out PicLan-IP. You can run that TCP/IP tool set on just about any flavor of Pick, so you can simplify your integration. If you plan on writing for just a couple flavors that support sockets, then it may be worth checking out my precompiler. It's still in pre-alpha, but the flavor directives work well. http://mvprecompiler.mvdevcentral.com/ The LOOP directive needs a lot of work so don't plan on using it. I would write your socket I/O subs outside of the main application, so you can use a precompiler to generate flavor-specific socket code as needed without a lot of hassle. Some Pick socket functions require that you do things to make them work properly. Under D3, you should set the %read() buffer's variable to max-length of whitespace before you call the function. If you are reading 100 byte blocks, then you should do BUFFER = SPACE(100) before using BUFFER in the read statement. This forces a malloc to the proper memory size for the %read() function's buffer. If you don't do that everytime, then you can get data corruption. I've seen it myself on large buffer sizes. You may be able to get away without doing it, but some heavy testing should be done to make sure the code is going to work properly. I would ask about things like this, regarding all flavors you plan on writing for. Are you familiar with using Unix sockets and Windows sockets, as well as the differences between them? If you're not, then I don't recommend that you jump in with both feet. Most of the flavors wrap the C socket calls into their own functions, but there are always inherent limitations to consider. Client side development isn't that difficult to deal with, but there are still the issues of function blocking and code control/error control. Most of the systems default to blocking functions, so you can't just poll the read() function and wait for a certain error code. Certain flavors implement setsockopt totally differently than the normal C style, while others follow the same syntax but leave out several key option values due to platform incompatibility. Basically, you've got a lot of homework to do! Glen http://mvdevcentral.com http://picksource.com "Steve" <132ji433 (AT) donotspamme (DOT) com> wrote in message news:d724fs$gm$1 (AT) nwrdmz03 (DOT) dmz.ncs.ea.ibs-infra.bt.com... Are you planning to start using some MV platform depending on whether it supports sockets? That's not the right way to go about things [snip] Thanks to all for the comments. I simply need to run some existing generic Databasic code, which is proven and tested, on any mv platform which will enable me to talk to an IP service on the network. In other words, I want to retain this application which runs on Pick and I don't want to change the way it works, other than to hook in some code to talk to an IP service. Simple as that really. Steve |
![]() |
| Thread Tools | |
| Display Modes | |
| |