Hello, I'm new to GNU Smalltalk but this package seems to compile (build) fine on Solaris 11.4 (Intel). I think it compiled fine because 'gmake install' worked and I can enter some of the sample tutorial code snippets, and this works. I've also created a Solaris IPS package for it (a binary package) so that it is easier to install. # pkg list gst NAME (PUBLISHER) VERSION IFO runtime/gst (nightly) 3.2.91-11.4.24.0.0.71.0 i-- The above 'package' (pkg) is the package management system, so that the binary can be installed without configure+make install. As a test, I would like to create a simple "TCP" or "UDP" daytime client in Smalltalk. In Squeak (a different Smalltalk implementation) the following code works: | r s addr | addr := NetNameResolver addressFromString:'192.168.0.1'. s := Socket newTCP connectTo:addr port:13. r := s receiveData. s close. Transcript show:r. When I try to evaluate the same code in gnu smalltalk: $ gst GNU Smalltalk ready st> Smalltalk version 'GNU Smalltalk version 3.2.91' st> | r s addr | st> addr := NetNameResolver addressFromString:'192.168.0.1'. Object: nil error: did not understand #addressFromString: MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254) UndefinedObject(Object)>>doesNotUnderstand: #addressFromString: (SysExcept.st:1408) UndefinedObject>>executeStatements (a String:1) nil Is there a way to load the NetNameResolver class in GNU smalltalk please ? Or is there an example of TCP/IP (TCP or UDP) NetClient programming with gst ? Thanks, David Stes |
[hidden email] writes:
> Is there a way to load the NetNameResolver class in GNU smalltalk please ? > > Or is there an example of TCP/IP (TCP or UDP) NetClient programming with gst ? gst ships with a sockets library; please check the included info page. The documentation is scant; you may have to read the source code. I suppose for simple client/server socket programming it should be fairly easy. Derek |
Why am I getting these emails?
On Fri, May 29, 2020, 5:59 AM Derek Zhou <[hidden email]> wrote: > [hidden email] writes: > > Is there a way to load the NetNameResolver class in GNU smalltalk please > ? > > > > Or is there an example of TCP/IP (TCP or UDP) NetClient programming with > gst ? > > gst ships with a sockets library; please check the included info > page. The documentation is scant; you may have to read the source > code. I suppose for simple client/server socket programming it should be > fairly easy. > > Derek > >
|
John -
my guess is that you are subscribed to the GNU smalltalk mailing list https://lists.gnu.org/mailman/listinfo/help-smalltalk |
... and if you look at the email's headers you'll see :
> List-Id: Users mailing list for the GNU Smalltalk environment <help-smalltalk.gnu.org> > List-Unsubscribe: <https://lists.gnu.org/mailman/options/help-smalltalk>, <mailto:[hidden email]?subject=unsubscribe> > List-Archive: <https://lists.gnu.org/archive/html/help-smalltalk> > List-Post: <mailto:[hidden email]> > List-Help: <mailto:[hidden email]?subject=help> > List-Subscribe: <https://lists.gnu.org/mailman/listinfo/help-smalltalk>, <mailto:[hidden email]?subject=subscribe> .. the mailing list instructions to (un)subscribe, post, get help, see the archives. Bye, Davide On 29/05/2020 22:12, bill-auger wrote: > John - > > my guess is that you are subscribed to the GNU smalltalk > mailing list > > https://lists.gnu.org/mailman/listinfo/help-smalltalk > -- Ing. Davide Grandi email : [hidden email] linkedin : http://linkedin.com/in/davidegrandi |
In reply to this post by stes
The docs have an incorrect reference: https://www.gnu.org/software/smalltalk/manual/html_node/Network-support.html#Network-support if you click on " Network programming with Sockets " that link is broken. I've tried the following: Eval [ PackageLoader fileInPackage: 'Sockets'. PackageLoader fileInPackage: 'NetClients'. s _ Socket remote:(SocketAddress createLoopbackHost) port:13. (s upTo: Character cr) printNl. s close. ] This fails: Object: nil error: did not understand #createLoopbackHost MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254) UndefinedObject(Object)>>doesNotUnderstand: #createLoopbackHost (SysExcept.st:1408) UndefinedObject>>executeStatements (daytime.st:7) Apparently it does not know about the SocketAdress class (subclass of IPAddress). There must be some other way apparently to load that class. Shouldn't loading the packages be sufficient to get the SocketAdress class ? David |
[hidden email] writes: > The docs have an incorrect reference: > > https://www.gnu.org/software/smalltalk/manual/html_node/Network-support.html#Network-support > > if you click on " Network programming with Sockets " that link is broken. Use the locally install docs. And most likely you need to read the source code as the doc is not that good. > > I've tried the following: > > Eval [ > > PackageLoader fileInPackage: 'Sockets'. > PackageLoader fileInPackage: 'NetClients'. > > s _ Socket remote:(SocketAddress createLoopbackHost) port:13. > (s upTo: Character cr) printNl. > s close. > > ] > > This fails: > > Object: nil error: did not understand #createLoopbackHost > MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254) > UndefinedObject(Object)>>doesNotUnderstand: #createLoopbackHost (SysExcept.st:1408) > UndefinedObject>>executeStatements (daytime.st:7) > > > Apparently it does not know about the SocketAdress class (subclass of > IPAddress). There must be some other way apparently to load that class. > > Shouldn't loading the packages be sufficient to get the SocketAdress class ? Yes. However, gnu smalltalk has namespace. It should be Sockets.SocketAddress, or you can <import: Sockets> Derek |
It works ! Thanks for your help: Assuming that the old 'legacy' daytime stream server runs on tcp port 13: $ gst daytime.st Loading package ObjectDumper Loading package Sockets 'Sat Jun 6 10:30:16 2020' $ cat daytime.st Eval [ PackageLoader fileInPackage: 'Sockets'. s _ Sockets.Socket remote:(Sockets.SocketAddress createLoopbackHost) port:13. (s upTo: Character cr) printNl. s close. ] So the problem was that you have to use the 'namespace'. Thanks, David Stes ----- Op 4 jun 2020 om 20:15 schreef Derek Zhou [hidden email]: > [hidden email] writes: > >> The docs have an incorrect reference: >> >> https://www.gnu.org/software/smalltalk/manual/html_node/Network-support.html#Network-support >> >> if you click on " Network programming with Sockets " that link is broken. > Use the locally install docs. And most likely you need to read the > source code as the doc is not that good. >> >> I've tried the following: >> >> Eval [ >> >> PackageLoader fileInPackage: 'Sockets'. >> PackageLoader fileInPackage: 'NetClients'. >> >> s _ Socket remote:(SocketAddress createLoopbackHost) port:13. >> (s upTo: Character cr) printNl. >> s close. >> >> ] >> >> This fails: >> >> Object: nil error: did not understand #createLoopbackHost >> MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254) >> UndefinedObject(Object)>>doesNotUnderstand: #createLoopbackHost >> (SysExcept.st:1408) >> UndefinedObject>>executeStatements (daytime.st:7) >> >> >> Apparently it does not know about the SocketAdress class (subclass of >> IPAddress). There must be some other way apparently to load that class. >> >> Shouldn't loading the packages be sufficient to get the SocketAdress class ? > > Yes. However, gnu smalltalk has namespace. It should be Sockets.SocketAddress, > or you > can <import: Sockets> > > Derek |
Free forum by Nabble | Edit this page |