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=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII X-Google-Thread: 103376,ad2e14b28c224ca9,start X-Google-Attributes: gid103376,public Path: controlnews3.google.com!postnews1.google.com!not-for-mail From: mutilation@bonbon.net (wave) Newsgroups: comp.lang.ada Subject: gnat sockets problem Date: 29 May 2004 17:08:05 -0700 Organization: http://groups.google.com Message-ID: <4d01ad29.0405291608.6d71cd4@posting.google.com> NNTP-Posting-Host: 81.98.132.36 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: posting.google.com 1085875685 7517 127.0.0.1 (30 May 2004 00:08:05 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sun, 30 May 2004 00:08:05 +0000 (UTC) Xref: controlnews3.google.com comp.lang.ada:920 Date: 2004-05-29T17:08:05-07:00 List-Id: Hi, I apologise that yet again I ask this newsgroup another question, but I've exhausted google and all the resources I could find on this subject! I'm having a problem, basically I'm wanting to write an ada program to return a raw quake3 server string. If any of you know how this works, it's over udp and you're sending the server a basic keyword command and then it responds timely to your request. Here's the problem; in my code the server is only giving me back 4 characters of the response the server should give, and I can't figure out why. I wondered if any of you lovely people could shed some light on this issue if you have any experience in this area. Here is my code below: with Gnat.Sockets; use Gnat.Sockets; with Ada.Text_Io; use Ada.Text_Io; procedure meh is Socket : Socket_Type; Server : Sock_Addr_Type; Channel : Stream_Access; begin Initialize; Create_Socket (Socket, Family_Inet, Socket_Datagram); -- Functioning ip address of a server I'm trying to query Server := ( Addr => Addresses (Get_Host_By_Name ("216.12.23.248"), 1), Port => 27960, Family => Family_Inet ); Bind_Socket (Socket, Server); Connect_Socket (Socket, Server); Channel := Stream (Socket); -- tried Character'Val(255) instead of � too! String'Output (Channel,"����getstatus"); loop declare Message : String := String'Input (Channel); begin Put (Message); end; end loop; Close_Socket (Socket); end meh; It all goes so well up until a point, but instead of the server responding with "����statusResponse.\game_version\sof2mp-1.02\sv_keywords\SOF2FULL.\sv_pure\1\......" I'm only just getting the ����. Is there some limit to the amount of data ada can send back or something? There are some quake3 protocol specs here: http://www.game-tracker.com/gameproto/enemyterritory.htm (et is just a mod for q3, same concept) that should show how the server should behave in this situation. As always, I'm really helpful for any insight you can give me. Cheers guys.