thanks again for the as3 hint. i implemented it raw for the game engine unity3d (coming soon also for windows).
# C# in Unity3d (
http://www.unity3d.com)
PhidgetInterfaceKit Raw Implementation for 1 attached PhidgetInterfaceKit. Find Source-Code for Unity3d here:
http://www.gametheory.ch/index.jsp?positionId=113660# C#-Standalone
If you want to have a implementation just C#/Mono just copy and paste together the things:
1. Rename: "Start()" > "PhidgetInterfaceKitClient()"
2. Add "Update();" in the method: "WaitForDataReceive()" before "WaitForData();" - this should work.
(3. There will be a Problem with stopping the AsyncCallback)
The Protocoll for connecting, i get out of the AS3 code, here the Modification for interested people (perhaps there is someone like me out there

And dont blame me about the code. It is not sexy at all just simple. But perhaps helps someone in going straight forwards.
/*
// ---------------------------------------------------------
// debugging and research with Flash
// ---------------------------------------------------------
// send data
1. com/phidgets/PhidgetSocket.as > Search for method "socketSend" enable trace()
// receive data
2. com/phidgets/PhidgetSocket.as > Search for method "onSocketData" add trace("Receive Data: "+realData);
// ---------------------------------------------------------
// filestructure
// ---------------------------------------------------------
// manager
// socket
// constants
// com/phidgets/Constants.as
// ---------------------------------------------------------
// transcript
// ---------------------------------------------------------
[out] need nulls
[out] 995 authenticate, version=1.0.1
[in] 200 appending NULLs to lines
[in] 996 No need to authenticate, version=1.0.1
[out] report 8 report
[out] set /PCK/Client/0.0.0.0/90819/PhidgetInterfaceKit="Open" for session
[out] listen /PSK/PhidgetInterfaceKit lid0
[in] 200 inter-report period adjusted to 8ms
[in] 200 set successful
[in] 200 listening, id lid0
[in] report 200-periodic report follows:
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Input/0 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Input/0 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Input/1 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Input/2 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Input/3 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Input/4 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Input/5 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Input/6 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Input/7 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Label latest value "das erste" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Name latest value "Phidget InterfaceKit 8/8/8" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/NumberOfInputs latest value "8" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/NumberOfOutputs latest value "8" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/NumberOfSensors latest value "8" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Output/0 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Output/1 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Output/2 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Output/3 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Output/4 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Output/5 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Output/6 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Output/7 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Sensor/0 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Sensor/1 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Sensor/2 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Sensor/3 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Sensor/4 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Sensor/5 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Sensor/6 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Sensor/7 latest value "0" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Status latest value "Attached" (added)
[in] report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Version latest value "826" (added)
// serial number: 85030
// sending a command (output)
[out] set /PCK/PhidgetInterfaceKit/85030/Output/3="1"
// ---------------------------------------------------------
// testing with shell netcat (nc)
// ---------------------------------------------------------
nc localhost 5001
need nulls
995 authenticate, version=1.0.1
report 8 report
listen /PSK/PhidgetInterfaceKit lid0
// now updates automatically
// read out
// /PSK/PhidgetInterfaceKit/[SERIALNUMBER]/Input/1 latest value "0" (current)
// /PSK/PhidgetInterfaceKit/85030/Input/1 latest value "0" (current)
// /PSK/PhidgetInterfaceKit/85030/Output/0 latest value "1" (current)
// /PSK/PhidgetInterfaceKit/85030/Status latest value "Attached" (current)
// /PSK/PhidgetInterfaceKit/85030/Label latest value "Label" (current)
// /PSK/PhidgetInterfaceKit/85030/Version latest value "826" (current)
// manually read out serial number /PSK/PhidgetInterfaceKit/SERIALXYZ/
// set /PCK/PhidgetInterfaceKit/SERIALXYZ/Output/3="1"
set /PCK/PhidgetInterfaceKit/85030/Output/3="1"
# shell
nc localhost 5001
need nulls
995 authenticate, version=1.0.1
report 8 report
set /PCK/Client/0.0.0.0/32556/PhidgetInterfaceKit="Open" for session
listen /PSK/PhidgetInterfaceKit lid0
// ...
/PSK/PhidgetInterfaceKit/85030/NumberOfInputs value 8
# receive data
200-periodic report follows:report 200-lid0 is pending, key /PSK/PhidgetInterfaceKit/85030/Sensor/3 latest value "407" (changed)
// setzen eines outputs ..
set /PCK/PhidgetInterfaceKit/85030/Output/3="1"
# protocoll
need nulls
// append nulls
995 authenticate, version=1.0.1
// authenti. else 996 error ! else auth.
/*
case "999": //Authentication required
var ticket :String = realData+_password;
_password = null;
var hash :String = MD5.hex_md5(ticket);
request = "997 " + hash;
socketSend(request);
break;
case "998": //Authentication failed
_errorCallback(new PhidgetError(com.phidgets.Constants.EPHIDGET_BADPASSWORD));
break;
case "996": //Authenitcated, or no authentication
//check version
if(realData.indexOf("version=",0)<=0)
{
_errorCallback(new PhidgetError(com.phidgets.Constants.EPHIDGET_BADVERSION));
break;
}
onAuthenticated();
break;
case "994": //Authentication failed
_errorCallback(new PhidgetError(com.phidgets.Constants.EPHIDGET_BADVERSION));
break;
//Commands
public static const NULL_CMD:String = "need nulls";
public static const LISTEN_CMD:String = "listen";
public static const IGNORE_CMD:String = "ignore";
public static const REPORT_CMD:String = "report";
public static const WAIT_CMD:String = "wait";
public static const FLUSH_CMD:String = "flush";
public static const WALK_CMD:String = "walk";
public static const QUIT_CMD:String = "quit";
public static const GET_CMD:String = "get";
public static const SET_CMD:String = "set";
//responses
public static const SUCCESS_200_RESP:String = "2";
public static const FAILURE_300_RESP:String = "3";
public static const FAILURE_400_RESP:String = "4";
public static const FAILURE_500_RESP:String = "5";
public static const AUTHENTICATE_900_RESP:String = "9";
public static const OK_PENDING_RESP:String = "200-";
public static const OK_RESP:String = "200 ";
//Listen key change reasons
public static const VALUE_CHANGED:int = 1;
public static const ENTRY_ADDED:int = 2;
public static const ENTRY_REMOVING:int = 3;
*/