front_idill/extern/fajran-npTuioClient/TuioClient/oscpack/changes
changeset 30 45c889eae324
parent 29 fcf435874395
child 31 2c7fc855eba8
equal deleted inserted replaced
29:fcf435874395 30:45c889eae324
     1 September 28, 2005
       
     2 ------------------
       
     3 
       
     4 Compared to the previous official snapshot (November 2004) the 
       
     5 current version of oscpack includes a re-written set of network 
       
     6 classes and some changes to the syntax of the networking code. It no 
       
     7 longer uses threads, which means that you don't need to use sleep() 
       
     8 if you are writing a simple single-threaded server, or you need to 
       
     9 spawn your own threads in a more complex application.
       
    10 
       
    11 The list below summarises the changes if you are porting code from 
       
    12 the previous release.
       
    13 
       
    14     - there are no longer any threads in oscpack. if you need to 
       
    15     set up an asynchronous listener you can create your own thread 
       
    16     and call Run on an instance of SocketReceiveMultiplexer or 
       
    17     UdpListeningReceiveSocket (see ip/UdpSocket.h) yourself.
       
    18     
       
    19     - host byte order is now used for network (IP) addresses
       
    20         
       
    21     - functions which used to take two parameters <address, port> 
       
    22     now take an instance of IpEndpointName (see 
       
    23     ip/IpEndpointName.h) this class has a number of convenient 
       
    24     constructors for converting numbers and strings to internet 
       
    25     addresses. For example there is one which takes a string and 
       
    26     another that take the dotted address components as separate 
       
    27     parameters.
       
    28     
       
    29     - The UdpTransmitPort class, formerly in UdpTransmitPort.h, is 
       
    30     now called UdpTransmitSocket, which is simply a convenience 
       
    31     class derived from UdpSocket (see ip/UdpSocket.h). Where you 
       
    32     used to use the constructor UdpTransmitPort( address, port) now 
       
    33     you can use UdpTransmitSocket( IpEndpointName( address, port ) 
       
    34     ) or you can any of the other possible ctors to IpEndpointName
       
    35     () (see above). The Send() method is unchanged.
       
    36     
       
    37     - The packet listener base class is now located in 
       
    38     ip/PacketListener.h instead of PacketListenerPort.h. The 
       
    39     ProcessPacket method now has an additional parameter indicating 
       
    40     the remote endpoint
       
    41     
       
    42     - The preferred way to set up listeners is with 
       
    43     SocketReceiveMultiplexer (in ip/UdpSocket.h), this also allows 
       
    44     attaching periodic timers. For simple applications which only 
       
    45     listen to a single socket with no timers you can use 
       
    46     UdpListeningReceiveSocket (also in UdpSocket.h) See 
       
    47     osc/OscReceiveTest.cpp or osc/OscDump.cpp for examples of this. 
       
    48     This is more or less equivalent to the UdpPacketListenerPort 
       
    49     object in the old oscpack versions except that you need to 
       
    50     explicitly call Run() before it will start receiving packets 
       
    51     and it runs in the same thread, not a separate thread so Run() 
       
    52     won't usually return.
       
    53     
       
    54     - Explicit calls to InitializeNetworking() and 
       
    55     TerminateNetworking() are no longer required for simple 
       
    56     applications (more complex windows applications should 
       
    57     instantiate NetworkInitializer in main() or WinMain (see 
       
    58     ip/NetworkingUtils.h/.cpp)
       
    59     
       
    60     - The OscPacketListener base class (OscPacketListener.h) was 
       
    61     added to make traversing OSC packets easier, it handles bundle 
       
    62     traversal automatically so you only need to process messages in 
       
    63     your derived classes.
       
    64     
       
    65     - On Windows be sure to link with ws2_32.lib or you will see
       
    66     a linker error about WSAEventSelect not being found. Also you 
       
    67     will need to link with winmm.lib for timeGetTime()
       
    68