AminetAminet
Search:
82087 packages online
About
Recent
Browse
Search
Upload
Setup
Services

comm/net/AMarquee51.lha

Mirror:Random
Showing:m68k-amigaosppc-amigaosppc-morphosi386-arosi386-amithlonppc-warpupppc-powerupgeneric
No screenshot available
Short:V51.4 TCP Data Broadcast System (library & server)
Author:hakan at parting.nu (Håkan Parting & Jeremy Friesner)
Uploader:hakan parting nu (Håkan Parting)
Type:comm/net
Version:51.4
Replaces:comm/net/AMarquee50.lha
Requires:Workbench 2.04+, AmiTCP3.0b+ or compatible TCP stack
Architecture:m68k-amigaos
Date:2000-08-07
Download:http://aminet.net/comm/net/AMarquee51.lha - View contents
Readme:http://aminet.net/comm/net/AMarquee51.readme
Downloads:2643
----------------------------------------------------------------

                          AMARQUEE v51.4

                    (Released August 6th 2000)

----------------------------------------------------------------


The Problem: 

 You have a great idea for a killer multi-player Internet game 
 or multi-user net app, but it's a total pain in the  at )#$* to 
 write all the TCP connection and data synchronization code 
 you'll need to get it going.  So you put your idea on the 
 back-burner and go play "Lemmings" instead.  And thus the 
 Amiga is deprived of a fun Internet app.  D-oh!  :(
 
The Solution:  (well, okay, it's *a* solution, anyway)

 AMarquee is a system that handles all of the icky information 
 distribution details for you, allowing you to concentrate on 
 coding your application, rather than on which data goes into 
 which socket when.  AMarquee consists of a shared library and
 a TCP daemon, which work together to get your data where it
 needs to be.  Your program calls simple amarquee.library
 functions to broadcast your data, and waits on a provided
 MsgPort for data from other hosts.  Easy!

 Version 49+ of amarquee.library may be used in more serious network
 applications too, that cannot use the amarquee protocol, like FTP and HTTP
 clients. This in the same easy fashioned way!

Features of amarquee.library (the shared library/API):

 - Programs written to use amarquee.library will work transparently
   with Inet225, AmiTCP, Miami, or any other TCP stack that is 
   "AmiTCP compatible".
 - Has a simple API that requires no knowledge of multithreading 
   techniques or socket programming to use.
 - Each AMarquee connection you make automatically and transparently
   starts a separate background execution thread, so your app will 
   never have to block while data is sent or received.
 - An arbitrary number of AMarquee connections may be active at once.
 - Allows you to "subscribe" to data that interests you, so that
   when the data on the server is changed you will be automatically 
   notified.  You never need to poll for anything!
 - An easy mechanism for sending messages to one or many other
   AMarquee clients that are logged into the same server.
 - Standard Amiga wildcarding is supported in all applicable functions.
   This allows you to easily and succinctly refer to one host or data
   item, or many, as appropriate.
 - #includes for C, C++, and PCQ Pascal are included.
 - ARexx accessible.  That is, ARexx scripts can use amarquee.library
   through rexxamarquee.library for communications using the same API
   that compiled C programs do.
 - Example programs in C, C++, Pascal, and ARexx are included.
 - Operation is almost totally asynchronous for efficiency, but
   several easy synchronization methods are available if you need them.
 - Can also be used for direct client-to-client connections and
   for making inetd-launched or manually-launched daemon programs.
 - Automatically detects when the computer on the other end of
   the AMarquee connection has crashed or been shut down, even 
   on idle connections.
 - In addition it can connect to any TCP service, eg. HTTP and FTP, and it will
   work in the same easy fashion like any other AMarquee connection.

Features of AMarqueed (the AmiTCP server):

 - Works with Inet225, AmiTCP, Miami, or any other TCP stack 
   that is "AmiTCP compatible".
 - Fully multithreaded design, with one server process per connection.
 - Re-entrant code, to minimize memory usage.
 - Data is stored in a filesystem-like tree structure for simplicity,
   flexibility and efficiency.  Each client gets its own "home directory"
   that it may write to or read from, and each client may also
   read from the "home directories" of other clients.
 - Efficient design minimizes CPU usage, net bandwidth, and execution time.
 - Limits may be put on memory usage, number of connections, and/or 
   which clients or apps may connect.  Only serve the hosts and apps
   you want to serve!
 - Supports data streaming to one or many clients at once.
 - Data streaming and synchronization features let you be sure your 
   data was read by all interested hosts before you update it again.
 - Automatically detects and eliminates "dead" connections (e.g.
   if the client computer was shut down without quitting politely)
 - Server may be administered remotely by clients with "privileged"
   status.

WHAT'S NEW IN VERSION 51.4:
( "-" = new feature, "*" = bug fix)
V51.4: (Public release 06-Aug-2000) (amarquee.library v51.4,
rexxamarquee.library v51.0, AMarqueed v51.0)
*    The qm_ActualLen in QMessage could sometimes be wrong with Socket Sessions
from v50.
     This probably didn't cause any trouble because you normally don't use that
field.
*    Fixed some rare memory leakage.
-    Added a new feature for Socket-Sessions. Previously it was not very easy   
  to use these sessions. The data received from the other host could be     
divided into several QMessages. And you couldn't explicitely tell AMarquee     
to return only entire application transfer units. Instead you had to buffer     
the data and copy all QMessages containing one transfer unit into your buffer.

     To solve this problem I've added a couple of tags to use with
QNewSocket*Session().
     QRAWSESSION_PROTOCOLSTOPHOOK, QRAWSESSION_RECEIVE_EXCEEDING_DATA and
     QRAWSESSION_PROTOCOLSTOPHOOK_USERDATA. Now communication with hosts not
     using the AMarquee protocol should be as simple as if they did. 
     Take a look on the new examples named geturl_Hook1.c and geturl_Hook2.c.
      
*    The QNew*Session() and QFreeSession() functions cleared the shared message
port given      with the tag QSESSION_SHAREDMSGPORT.
     Because of this misfunction there were problems when you created a new or
freed an old      session while there were messages waiting in the message port.
You should require at      least v.51 of amarquee.library when you use shared
message ports.
     Please understand that only one task, the one which created the shared
message port, may      create and free sessions which are bound to the shared
message port.

     For any sessions please also understand that you must make sure that only
one task at      one time use a specific session. This apply to all the Q*Op()
functions, which could be      called from several tasks if the calls are
serialized.
     QFreeSession() may only be called from the task which owns the session,
i.e. the task      which created the session or have taken over a session with
QReattachSession().

*    There were some trouble if you had set AMARQUEED_ALLOWBROWSE and
AMARQUEED_RESTRICTBROWSE      on the AMarqueed server. This bug is fixed in this
version of AMarqueed.
     1. If a client program from one host connected more than once to amarqueed,
the new client      is supposed to take over and kill the old client. Instead
the old client got killed and the      new one failed to connect with error code
QERROR_ACCESS_DENIED (Server Refused Connection).
     2. Occasionally the host path set with AMARQUEED_RESTRICTBROWSE got banned
from the server.
     Both these problems happened on the AmiComSys/AMarquee server
acs.hostile.cx. The last one      occured about once a month. That's the reason
for the recent down times.
-    Improved documentation and added a standard autodoc for amarquee.library to
the distribution.
 
V50.11a: (Public Release 8-Apr-2000) (amarquee.library v50.11,
rexxamarquee.library v50.6, AMarqueed v49.7)
-    Added a amarquee.lib for use with vbccm68k C-compiler.
-    Modified the AMarquee_protos.h file to make it work with vbcc and other
compilers.
-    AMarquee is Donationware. Now you could register online. See the
distribution section in the      guide for more info. 

V50.11: (Public Release 19-Mar-2000) (amarquee.library v50.11,
rexxamarquee.library v50.6, AMarqueed v49.7)
-    amarquee.library now returns larger packets with a Socket-Session
connection,      instead of several small packets.
-    Added function QSetMaxRawBufSize() to library. Use it to set the maximum
buffer      size that shall be used with a Socket Session. This is the maximum
size of the      QMessage you receive. As an option you can use the tag named
QRAWSESSION_MAXBUFFERSIZE      with the QNewSocket*Session() call.
-    Updated rexxamarquee.library with the new function. Rexxamarquee.library
v.50x      requires amarquee.library v.50 or better.
-    Modified QNewSession, QNewSessionAsync, QNewHostSession,
QNewServerSession().
     They now also take an additional argument with a tag list.
     Old programs compiled for v.49 or less will still work.
     New programs compiled for v.50 won't work with v.49 or less, so
     the minimum version to require with the protos, fd, and pragmas which are
     in the v.50+ AMarquee-package is 50.
     Old source code using the new header-files must be updated.
-    A tag, QSESSION_ERRORCODEPTR, was added. Set it to a pointer to a
LONG-variable      where you want the error code to be copied. This is needed
because QNewSession() returns      NULL when it fails, i.e. you can't use
QFreeSession() to find out why.
-    Dropped support for the INET225 version of amarquee.library. Is anybody
using it? -    Changed the error code which is returned by QFreeSession() or
copied to the      QSESSION_ERRORCODEPTR variable when a connection to a server
port failed.
     When the QNewSocketSession(Async) function is used the return code is
QERROR_NO_TCPSERVER      instead of QERROR_NO_SERVER. -   
QCreateSharedMessagePort(), QDeleteSharedMessagePort() functions added to
library.
-    Added the tag QSESSION_SHAREDMSGPORT.
-    Added example amarqueesharedmp.c to show how to use the new shared message
port functions.
*    The qm_Path of the QMessage received when a asynchronious connection have
been established      only contained the host name. It shall also contain the
program name, like /hostname/progname,      when QNewSessionAsync() was used.
-    AMarqueed was not updated in this release.


Contents of comm/net/AMarquee51.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO     CRC       STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                 1357    4008  33.9% -lh5- 5c7b Feb 14  1999 AMarquee.info
[generic]                59167  213564  27.7% -lh5- 9ff3 Aug  6  2000 AMarquee/AMarquee.guide
[generic]                 1096    1542  71.1% -lh5- 24e4 Apr 10  1998 AMarquee/AMarquee.guide.info
[generic]                  152     152 100.0% -lh0- e125 Aug  6  2000 AMarquee/amarquee.guide.sig
[generic]                14244   26028  54.7% -lh5- 358f Aug  6  2000 AMarquee/amarquee.library
[generic]                  152     152 100.0% -lh0- 260b Aug  6  2000 AMarquee/amarquee.library.sig
[generic]                 4312   10336  41.7% -lh5- 2369 Aug  6  2000 AMarquee/AMarquee.readme
[generic]                  268     835  32.1% -lh5- 2b11 Apr 10  1998 AMarquee/AMarquee.readme.info
[generic]                23955   46528  51.5% -lh5- e433 Aug  6  2000 AMarquee/AMarqueed
[generic]                  152     152 100.0% -lh0- 216d Aug  6  2000 AMarquee/amarqueed.sig
[generic]                32646  134660  24.2% -lh5- 240d Aug  6  2000 AMarquee/autodoc/amarquee.doc
[generic]                 1604    4123  38.9% -lh5- d420 Apr 10  1998 AMarquee/EditTextFile.rexx
[generic]                 6410   11260  56.9% -lh5- 07b8 Aug  6  2000 AMarquee/examples/AmarqueeDebug
[generic]                 2513    7426  33.8% -lh5- 5e18 Aug  6  2000 AMarquee/examples/amarqueedebug.c
[generic]                 2323    6753  34.4% -lh5- db7d Apr 10  1998 AMarquee/examples/amarqueedebug.cpp
[generic]                 2305    7058  32.7% -lh5- 0965 Aug  6  2000 AMarquee/examples/amarqueedebug.rexx
[generic]                 7303   13084  55.8% -lh5- 4d14 Aug  6  2000 AMarquee/examples/AMarqueeDebugMultiThread
[generic]                 3285    9720  33.8% -lh5- a3ff Aug  6  2000 AMarquee/examples/AMarqueeDebugMultiThread.c
[generic]                 5541    9264  59.8% -lh5- f146 Aug  6  2000 AMarquee/examples/amarqueehost
[generic]                 1564    4180  37.4% -lh5- 21a9 Aug  6  2000 AMarquee/examples/amarqueehost.c
[generic]                 2116    6383  33.2% -lh5- 313a Aug  6  2000 AMarquee/examples/amarqueehost.rexx
[generic]                 6971   11936  58.4% -lh5- 9868 Aug  6  2000 AMarquee/examples/amarqueeserver
[generic]                 1922    5312  36.2% -lh5- fd0d Aug  6  2000 AMarquee/examples/AMarqueeServer.c
[generic]                 4997    8168  61.2% -lh5- c294 Aug  6  2000 AMarquee/examples/amarqueesharedmp
[generic]                 1632    5296  30.8% -lh5- bf7b Aug  6  2000 AMarquee/examples/amarqueesharedmp.c
[generic]                 5601    9340  60.0% -lh5- a827 Aug  6  2000 AMarquee/examples/amarqueesocketdebug
[generic]                 1751    4245  41.2% -lh5- 9b81 Aug  6  2000 AMarquee/examples/amarqueesocketdebug.c
[generic]                 5414    9024  60.0% -lh5- 8cfe Aug  6  2000 AMarquee/examples/amarqueesockethost
[generic]                 1417    3379  41.9% -lh5- fd52 Aug  6  2000 AMarquee/examples/amarqueesockethost.c
[generic]                  319     656  48.6% -lh5- 0179 Aug  6  2000 AMarquee/examples/amarqueetags.o
[generic]                 4788    7468  64.1% -lh5- b73e Aug  6  2000 AMarquee/examples/BounceCount
[generic]                 1169    2915  40.1% -lh5- 7a53 Aug  6  2000 AMarquee/examples/BounceCount.c
[generic]                  275     522  52.7% -lh5- 53fc Aug  6  2000 AMarquee/examples/dmakefile
[generic]                  262     494  53.0% -lh5- 224c Apr 10  1998 AMarquee/examples/dmakefile.bak
[generic]                 4812    7600  63.3% -lh5- 563c Aug  6  2000 AMarquee/examples/geturl
[generic]                 1351    3240  41.7% -lh5- 6eaa Aug  6  2000 AMarquee/examples/GetURL.c
[generic]                 1247    2788  44.7% -lh5- 5704 Aug  6  2000 AMarquee/examples/geturl.rexx
[generic]                 5104    8244  61.9% -lh5- bde9 Aug  6  2000 AMarquee/examples/geturl_hook1
[generic]                 2578    7439  34.7% -lh5- a731 Aug  6  2000 AMarquee/examples/GetURL_Hook1.c
[generic]                 4924    7792  63.2% -lh5- 0be4 Aug  6  2000 AMarquee/examples/geturl_Hook2
[generic]                 1855    4588  40.4% -lh5- 463a Aug  6  2000 AMarquee/examples/GetURL_Hook2.c
[generic]                 1104    2431  45.4% -lh5- db2e Aug  6  2000 AMarquee/examples/killclients.rexx
[generic]                 6495   10552  61.6% -lh5- 56fb Aug  6  2000 AMarquee/examples/MiniIRC
[generic]                 2271    6544  34.7% -lh5- 2c99 Aug  6  2000 AMarquee/examples/MiniIRC.c
[generic]                 1984    3336  59.5% -lh5- ab97 Aug  6  2000 AMarquee/examples/PascalTest
[generic]                  506    1147  44.1% -lh5- e58b Aug  6  2000 AMarquee/examples/PascalTest.p
[generic]                 4500    7052  63.8% -lh5- 2149 Aug  6  2000 AMarquee/examples/RemoveTest
[generic]                 1039    2551  40.7% -lh5- 28b9 Aug  6  2000 AMarquee/examples/RemoveTest.c
[generic]                 5793    9400  61.6% -lh5- cc9a Aug  6  2000 AMarquee/examples/SillyGame
[generic]                 2592    8219  31.5% -lh5- 8c0b Aug  6  2000 AMarquee/examples/SillyGame.c
[generic]                 4774    7472  63.9% -lh5- 3cc0 Aug  6  2000 AMarquee/examples/StreamCheck
[generic]                 1245    3137  39.7% -lh5- f6c5 Aug  6  2000 AMarquee/examples/StreamCheck.c
[generic]                 4699    7336  64.1% -lh5- 6195 Aug  6  2000 AMarquee/examples/Streamgen
[generic]                 1093    2617  41.8% -lh5- baaf Aug  6  2000 AMarquee/examples/streamgen.c
[generic]                 4788    7528  63.6% -lh5- 2ab9 Aug  6  2000 AMarquee/examples/Synctest
[generic]                 1305    3255  40.1% -lh5- 68d7 Aug  6  2000 AMarquee/examples/SyncTest.c
[generic]                 1169    2649  44.1% -lh5- e56f Aug  6  2000 AMarquee/examples/sysmessage.rexx
[generic]                 1363    5303  25.7% -lh5- 8107 Mar 19  2000 AMarquee/include/amiga/clib/AMarquee49_protos.h
[generic]                 1558    6303  24.7% -lh5- 1dc6 Apr  8  2000 AMarquee/include/amiga/clib/AMarquee_protos.h
[generic]                  330    1504  21.9% -lh5- 54d0 Mar 19  2000 AMarquee/include/amiga/dice/amarqueetags.c
[generic]                  319     656  48.6% -lh5- 0179 Mar 19  2000 AMarquee/include/amiga/dice/amarqueetags.o
[generic]                  507    1584  32.0% -lh5- e05f Mar 19  2000 AMarquee/include/amiga/fd/AMarquee49_lib.fd
[generic]                  575    1795  32.0% -lh5- 21cd Mar 19  2000 AMarquee/include/amiga/fd/AMarquee_lib.fd
[generic]                 1436    8455  17.0% -lh5- 19f1 Mar 19  2000 AMarquee/include/amiga/inline/AMarquee.h
[generic]                 1265    7072  17.9% -lh5- 714c Mar 19  2000 AMarquee/include/amiga/inline/AMarquee49.h
[generic]                 1610    8708  18.5% -lh5- a7d2 Apr  8  2000 AMarquee/include/amiga/lib/amarquee.lib
[generic]                 2496    6297  39.6% -lh5- 4e39 Aug  6  2000 AMarquee/include/amiga/libraries/AMarquee.h
[generic]                 1701    4161  40.9% -lh5- a1af Mar 19  2000 AMarquee/include/amiga/libraries/AMarquee49.h
[generic]                  522    2177  24.0% -lh5- 0080 Mar 19  2000 AMarquee/include/amiga/pragmas/AMarquee49_pragmas.h
[generic]                  597    2548  23.4% -lh5- faaf Mar 19  2000 AMarquee/include/amiga/pragmas/AMarquee_pragmas.h
[generic]                  195     301  64.8% -lh5- 8f1c Mar 19  2000 AMarquee/include/amiga/proto/AMarquee.h
[generic]                  197     305  64.6% -lh5- eb42 Mar 19  2000 AMarquee/include/amiga/proto/AMarquee49.h
[generic]                  217     409  53.1% -lh5- 25f5 Mar 19  2000 AMarquee/include/amiga/proto/gnu/AMarquee.h
[generic]                  221     413  53.5% -lh5- fb88 Mar 19  2000 AMarquee/include/amiga/proto/gnu/AMarquee49.h
[generic]                 2949   13339  22.1% -lh5- 3301 Mar 19  2000 AMarquee/include/Session.h
[generic]                 2870   12182  23.6% -lh5- 17fb Mar 19  2000 AMarquee/include/Session49.h
[generic]                 5949   23923  24.9% -lh5- a093 Mar 19  2000 AMarquee/Install_AMarquee
[generic]                  329     612  53.8% -lh5- c73e Apr 10  1998 AMarquee/Install_AMarquee.info
[generic]                 2903   10298  28.2% -lh5- c0af Aug  6  2000 AMarquee/PCQ/AMarquee.i
[generic]                  817    6024  13.6% -lh5- 2058 Mar 19  2000 AMarquee/PCQ/AMarquee.lib
[generic]                  910    1318  69.0% -lh5- 2b96 Aug  6  2000 AMarquee/public-pgp-key.asc
[generic]                 6771   13040  51.9% -lh5- 1521 Aug  6  2000 AMarquee/rexxamarquee.library
[generic]                  152     152 100.0% -lh0- 865b Aug  6  2000 AMarquee/rexxamarquee.library.sig
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        83 files  314970  851759  37.0%            Aug  7  2000

Aminet © 1992-2017 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>