Słuchaj połączeń przychodzących w kliencie AS3 (AIR) bez użycia gniazda serwera

Udało mi się utworzyć serwer C #, który wysyła pliki do klientów AS3 (AIR) za pomocąsockets. Po stronie AS3 używamflash.net.Socket biblioteka do odbioru danychTCP.

Tak to działa:
-> Włączam serwer i nasłuchuje klientów (plus mogę utworzyć listę podłączonych urządzeń);
-> Włączam klienta i automatycznie odbiera dane;

Zdarzenie wyzwalające otrzymywanie danych jest wykonywane na kliencie, tzn. Po prostu włączam serwer i kiedy klient się włącza, pobiera dane, uruchamiając te zdarzenia:

socket.addEventListener(Event.CONNECT, onConnect); -> to connect to the server  
socket.addEventListener(Event.SOCKET_DATA, onDataArrival); -> to receive the data  

Teraz chcę zrobić coś innego. Nie chcę go uruchamiać na kliencie, chcę, aby serwer to zrobił, tzn. Chcę włączyć mojego klienta, a na serwerze umieścić klienta, który otrzyma dane.

Dlaczego więc próbuję uczynić klienta klientem / serwerem? Ponieważ mój serwer jest jedną maszyną, a moimi klientami są urządzenia mobilne XXX, które łączą serwer, i to jest moje podejście, aby to osiągnąć.

Tak więc, biorąc pod uwagę to, co właśnie powiedziałem, udało mi się stworzyć moją aplikację klient / serwer AS3, która działa tak, jak tego chcęflash.net.ServerSocket biblioteka.

Najpierw słucham klienta:

serverSocket.bind(portNumber, "10.1.1.212");
serverSocket.addEventListener(ServerSocketConnectEvent.CONNECT, onConnectServer);
serverSocket.listen();

A następnie otrzymuję dane za pomocąflash.net.Socket Event.SOCKET_DATA

I to prawie tyle. Działa tak, jak chcę.
Jednakżeflash.net.ServerSocket nie jest kompatybilny z urządzeniami mobilnymi, ale ...

Oto mój problem: muszę wysłać pliki z serwera C # (który musi nasłuchiwać klientów, aby móc utworzyć listę podłączonych urządzeń) do klientów AS3 (AIR), ale muszę określić, który klient pobiera dane na serwer, a klienci muszą być przygotowani na otrzymywanie tych danych w dowolnym momencie, dlatego słuchają, ale jest ich wiele, dlatego uważam ich za klientów.

Moje pytanie brzmi: czy istnieje sposób na sprawienie, aby klient nasłuchiwał połączeń przychodzących i wyzwalał zdarzenie, gdy tak się stanie, bez użycia gniazda serwera w AS3?

Ponadto, jeśli masz inne podejście do osiągnięcia mojego celu bez użycia logiki klient / serwer <-> AS3 na serwerze C #, nie krępuj się.

questionAnswers(1)

yourAnswerToTheQuestion