From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_00,FREEMAIL_FROM, PDS_OTHER_BAD_TLD autolearn=no autolearn_force=no version=3.4.4 X-Received: by 10.236.0.232 with SMTP id 68mr3575070yhb.16.1391722966715; Thu, 06 Feb 2014 13:42:46 -0800 (PST) X-Received: by 10.140.42.87 with SMTP id b81mr111079qga.18.1391722966694; Thu, 06 Feb 2014 13:42:46 -0800 (PST) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!feeder.erje.net!eu.feeder.erje.net!news.glorb.com!k15no13198887qaq.0!news-out.google.com!y18ni5006qap.1!nntp.google.com!k15no13198882qaq.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Thu, 6 Feb 2014 13:42:46 -0800 (PST) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=85.226.118.98; posting-account=Q4keDQoAAADVvR66mtecxKV-0pCNQlyk NNTP-Posting-Host: 85.226.118.98 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <1408dd3b-f555-4b75-94ef-cdb9c06ed0ca@googlegroups.com> Subject: Need help creating a multi client TCP server with Ada From: alex.aanis@gmail.com Injection-Date: Thu, 06 Feb 2014 21:42:46 +0000 Content-Type: text/plain; charset=ISO-8859-1 Xref: news.eternal-september.org comp.lang.ada:18410 Date: 2014-02-06T13:42:46-08:00 List-Id: Hi, Im new here and an Ada beginner. I have created a server/client TCP program which works nicely but the problem is I don't know how to accept more than one client. Code is on github: goo.gl/RvNIei The server has 3 tasks. listener, writer, reader task. --Listener task --Listen for incoming connections --Notify on client connect --Save the new channel for future read and write access Sockets.Accept_Socket(...) channel := Sockets.Stream (Connection); Put_Line ( Sockets.Image (Client) & " connected."); I tried to create a doubly linked list which points to channel( GNAT.Sockets.Stream_Access ) using Ada.containers with out any luck! It seems that Ada.containers.double_linked_list cant be used with stream_access types. 1. How may I proceed with this? 2. How can I know if one client has been disconnected? Alex