Processing:Библиотеки/Network/Класс Server/ip(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
Строка 16: Строка 16:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">


</syntaxhighlight>
</syntaxhighlight>
Строка 22: Строка 22:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">


</syntaxhighlight>
</syntaxhighlight>
Строка 28: Строка 28:
==Возвращаемое значение==
==Возвращаемое значение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">


</syntaxhighlight>
</syntaxhighlight>
Строка 34: Строка 34:
==Пример==
==Пример==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
// Внимание, баг! Остановка сервера дает фатальную ошибку:
// Внимание, баг! Остановка сервера дает фатальную ошибку:
// "java.net.SocketException: Socket closed
// "java.net.SocketException: Socket closed

Версия от 18:11, 14 мая 2023


Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


ip()[1]

Описание

Возвращает IP-адрес сервера. Это статичный метод, поэтому его нужно использовать в виде Server.ip(), а не вызывать его на объекте, созданном на базе класса Server.

Обратите внимание, что адрес может быть частью частной сети и потому может быть доступен только тем машинам, что находятся с ним в одной сети. В других случаях ip() может вернуть адрес, доступный публично (правда, возможно, придется дополнительно повозиться с настройками роутера, чтобы настроить подключение с вашей машиной). Так или иначе, это зависит от того, как настроена сеть, к которой вы подключаетесь, и (реже) от сетевых настроек вашей машины.

Синтаксис

Параметры

Возвращаемое значение

Пример

// Внимание, баг! Остановка сервера дает фатальную ошибку:
// "java.net.SocketException: Socket closed
//  at java.net.PlainSocketImpl.socketAccept(Native Method)"
 
import processing.net.*;

int port = 10002;
boolean myServerRunning;
Server myServer;

void setup() {
  size(400, 400);
  background(0);
  myServerRunning = false;
  println("Server Running:" + "t" + myServerRunning);
      //  "Сервер запущен:"
}

void draw() {
  // здесь ничего не происходит,
  // главная движуха - в функции mousePressed()
}

void mousePressed() {
  // если пользователь нажимает на кнопку мыши,
  // это меняет статус сервера myServer
  println("click");
  if (myServerRunning) {
    // внимание! это вызывает ошибку, убивающую скетч:
    myServerRunning = false;
    myServer.stop();
    myServer = null;
  } 
  else {
    // запускаем сервер на порте 10002:
    myServer = new Server(this, port);
    myServerRunning = true;
    println(Server.ip());
  }
  background(0);
  println("Server Status:" + "t" + myServerRunning);
      //  "Статус сервера: " 
}

См.также

Внешние ссылки