aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FEATURES.txt54
-rw-r--r--README.txt15
2 files changed, 62 insertions, 7 deletions
diff --git a/FEATURES.txt b/FEATURES.txt
new file mode 100644
index 0000000..5203936
--- /dev/null
+++ b/FEATURES.txt
@@ -0,0 +1,54 @@
+iemnet - networking for Pd
+==========================
+
+A general:
+iemnet objects provide a low-level interface (OSI-5 transport layer) to
+networking from within Pd.
+iemnet tries to do only one thing (transmitting data over the internet), but it
+tries to do it good.
+
+
+A1 data
+data passed over the network has to be given as "list of bytes".
+in Pd-speak these are "list"s, containing only floating point numbers whoses
+values must be integer and in the range 0..255.
+you have to take care of that yourself. if you don't (e.g. trying to send
+symbols, fractional numbers, out of range numbers), you are to blame.
+in order to send more complex data, you have to wrap them into an application
+layer protocol, such as Open Sound Control (OSC).
+you can find objects to convert OSC messages to/from messages understood by
+iemnet objects in Martin Peaches great "osc" library.
+
+
+A2 threading
+iemnet makes heavy use of threading.
+this means that sending data (to the internet), receiving data (from the
+internet) and processing datat (within Pd) can run in parallel.
+this means that you won't get audio dropouts if the network is slow because your
+your neighbour is downloading videos.
+if you have a multi-core (SMP) system, threads can utitlize this.
+if you don't have a multi-core (SMP) system, you still benefit from the
+threading approach.
+
+
+B TCP/IP objects
+
+B1 [tcpserver]
+listens on a port for incoming messages
+
+if the port is already occupied, you are provided feedback so you can react
+
+the port can be changed at runtime
+
+you can let the system chose an available port for you (and you can query it)
+
+passing only a list (without the "send <csocket>", "client <id>" or
+"broadcast" prefix) specifies only the payload (data).
+the target can be set with the "target" message ("target 0" means "broadcast",
+"target <id>" will send to "client <id>" if id>0 and to all but "client <id>" if
+id<0
+
+
+
+
+
diff --git a/README.txt b/README.txt
index 4c18979..191818a 100644
--- a/README.txt
+++ b/README.txt
@@ -2,7 +2,9 @@ iemnet - networking for Pd
==========================
this is a fork of martin peach's "net" library, that allows low-level
-interaction with networks on OSI-layer 5 (transport layer)
+interaction with networks on OSI-layer 5 (transport layer).
+
+for a list of features, see FEATURES.txt
Why fork?
=========
@@ -52,13 +54,12 @@ connection and still keep Pd reactive.
dropouts; this is not necessarily related to the network but rather to the
amount of data processed by Pd...)
-
-
-
easy to use:
-probably not
-
-
+probably not; but at least it has the same (basic) API as mrpeach/net so a
+switch should be easy. "basic" means "not everything", so messages for special
+workarounds in mrpeach/net (e.g. the block/unblock stuff) are not supported, as
+well as debugging features ("dump") and features not related to networking (e.g.
+the ability to read a file from harddisk)
Authors: