Как я могу хранить сокеты в базе данных? - PullRequest
0 голосов
/ 12 апреля 2009

Я хочу сохранить сокеты в моей базе данных и получить их тоже. Но сокеты не сериализуемы, поэтому я не смог этого сделать.

Как я могу хранить сокеты в базе данных?

Ответы [ 4 ]

18 голосов
/ 12 апреля 2009

Как насчет сокета, который вы хотите сохранить в базе данных? Сам сокет представляет то, что не может быть сохранено в данных, но, возможно, вы можете извлечь важные атрибуты сокета - IP-адреса конечных точек, порты и, возможно, некоторые другие важные атрибуты, если таковые имеются - и сохранить их в базе данных как прокси для самого сокета.

2 голосов
/ 12 апреля 2009

Вам нужно подумать о том, что вам действительно нужно сохранить в базе данных, которая представляет собой "разговор" с клиентом в вашем конкретном приложении.

Например, это может быть (надежно сгенерированный) случайный номер / идентификатор сеанса, выделенный на сервере и который клиент передает в виде файла cookie. Это может быть IP-адресом / удаленным портом, учитывая, что они должны рассматриваться как временные.

0 голосов
/ 12 апреля 2009

Сокет, к которому у вашей программы есть доступ, является временной сущностью, от которой будет отказано. Что вы имеете в виду, храня его в базе данных? Что ты пытаешься сделать?

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

0 голосов
/ 12 апреля 2009

Как вы хотите хранить сокет в базе данных? Вы имеете в виду структуру данных?

Если вы имеете в виду структуру данных, то вы можете просто хранить сокеты в векторе.

Пример:

Vector yourNewPlaceToStoreSockets = new Vector();
yourNewPlaceToStoreSockets.add(yourSocketObject);

Если бы вы могли быть немного более информативным, это помогло бы мне ответить вам лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...