maitretarot-devel-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Maitretarot-devel-fr] test de libmaitretarot


From: philippe brochard
Subject: [Maitretarot-devel-fr] test de libmaitretarot
Date: 12 May 2002 15:38:14 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Il manque la fonction 

player.c:52: warning: implicit declaration of function `libmt_connect_to_socket'

dans net.c et net.h (qui est vide d'ailleurs)


resultat, le client ne peut pas se connecter à la socket.

voila à quoi elle resemble :

--- net.c -----------------------------------------------------------------
[...]

gint
connect_to_socket (GString * ip, guint16 port)
{
  struct hostent server_address, *address;
  struct sockaddr_in *client_sockaddr_in;
  gint sock;
  gint optval;

  if ((address = gethostbyname (ip->str)) == NULL)
    {
      return (MT_ERROR_SOCKET_GETHOST_FAILED);
    }

  memcpy (&server_address, address, sizeof (struct hostent));

  /* Open the server socket */

  sock = socket (AF_INET, SOCK_STREAM, 6);
  if (sock == -1)
    {
      return (MT_ERROR_SOCKET_SOCKET_FAILED);
    }

  optval = 1;
  setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof (gint));

  /* Get infos on the server */
  if ((client_sockaddr_in = g_malloc (sizeof (struct sockaddr_in))) == NULL)
    {
      return (MT_ERROR_SOCKET_CREATION_FAILED);
    }

  client_sockaddr_in->sin_family = server_address.h_addrtype;
  client_sockaddr_in->sin_port = htons (port);
  memcpy ((gchar *) & (client_sockaddr_in->sin_addr.s_addr),
          server_address.h_addr, server_address.h_length);
  bzero ((gchar *) & (client_sockaddr_in->sin_zero),
         sizeof (struct sockaddr) - __SOCKADDR_COMMON_SIZE -
         sizeof (guint16) - sizeof (struct in_addr));

  /* Connect to the server as a client */

  if (connect
      (sock, (struct sockaddr *) client_sockaddr_in,
       sizeof (struct sockaddr_in)))
    {
      g_free (client_sockaddr_in);
      return (MT_ERROR_SOCKET_CONNECT_FAILED);
    }
  g_free (client_sockaddr_in);
  return (sock);
}

[...]
---------------------------------------------------------------------------


et l'enum pour les erreurs va dans net.h :

-- net.h ------------------------------------------------------------------
[...]

typedef enum {
  MT_ERROR_SOCKET_GETHOST_FAILED = -1,
  MT_ERROR_SOCKET_SOCKET_FAILED = -2,
  MT_ERROR_SOCKET_CREATION_FAILED = -3,
  MT_ERROR_SOCKET_CONNECT_FAILED = -4 }
error_socket_e;

[...]
---------------------------------------------------------------------------





Philippe


-- 
,-------------------.         ,---------------,----------------------.
| Philippe Brochard |   ...   | address@hidden | http://hocwp.free.fr |
`------------------(_  (. .)  `---------------'----------------------'
-------------------ooO--(_)--Ooo--------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]