Пример GIO для открытия порта сервера? - PullRequest
1 голос
/ 23 января 2010

Подскажите, пожалуйста, есть ли пример использования GIO Server Socket? (тот, который я могу открыть порт и слушать запросы сокетов)? Я хотел бы использовать его для «дистанционного управления» моим приложением GTK +.

1 Ответ

2 голосов
/ 27 января 2010

Я думаю, вы должны сделать что-то вроде этого:

#define MY_PORT 47110

/* Listener callback, this gets called by GTK+ when
 * there's socket activity to handle.
*/
static gboolean cb_listener(GIOChannel *source, GIOCondition condition, gpointer data
{
  switch(condition)
  {
  case G_IO_IN:
    /* There's data to be read. */
    break;
  default:
    /* An error has occured, or socket is closed. */
    return FALSE; /* This tells GIO to remove the source, might be drastic. */
  }
  return TRUE; /* This tells GIO that all is fine. */
}

Затем в другом месте (в функции, может быть, main()):

GSocketListener *listener;

listener = g_socket_listener_new();
g_socket_listener_add_inet_port(listener, MY_PORT, NULL, NULL);
g_io_add_watch(G_IO_CHANNEL(listener), G_IO_IN | G_IO_ERR | G_IO_HUP, cb_listener, NULL);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...