root/oscpack/tags/release_1_0_2/CHANGES

Revision 30, 3.3 kB (checked in by ross, 4 years ago)

updated date in changes file

Line 
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
Note: See TracBrowser for help on using the browser.