Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2011, 15:15   #1
legendary
Форумчанин
 
Аватар для legendary
 
Регистрация: 21.04.2010
Сообщений: 125
По умолчанию сохранить сокеты в бд

нужно в бд сохранять сокеты клиентов, как это зделать?
Код:
 
String sql = "CREATE TABLE clients (" + 
        "name VARCHAR(100)," + 
        "password VARCHAR(50)," + 
        "socket VARCHAR(255)," + 
        "index int" + ")";
...
sql = "SELECT socket FROM clients";
st = conn.prepareStatement(sql);                                
result = st.executeQuery();
 
if (result.next()){
do{
if (result.getString(1).equals(socket.toString())){  
send(client_name, result.getString(1));
}
} while(result.next());
все вроде ок, но

Код:
public static void send(String str, Socket socket){
try {
if (socket != null) socket.getOutputStream().write(str.getBytes());                                     
                        else JOptionPane.showMessageDialog(null, "socket == null");
                } 
                catch (IOException e)
                {
                        JOptionPane.showMessageDialog(null, "error " + e);
                }
 
}
как сохранить тип Socket???
legendary вне форума Ответить с цитированием
Старый 29.05.2011, 15:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если не ошибаюсь это простое число, однако лучше хранить не сокеты а IP и порты
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.05.2011, 18:43   #3
legendary
Форумчанин
 
Аватар для legendary
 
Регистрация: 21.04.2010
Сообщений: 125
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Если не ошибаюсь это простое число
Код:
		try {
			ServerSocket server = new ServerSocket(3111);
			Socket socket = new Socket(InetAddress.getByName("localhost"), 3111);
			System.out.println(socket.toString());
		} 
		catch (UnknownHostException e) {
			e.printStackTrace();
		} 
		catch (IOException e) {
			e.printStackTrace();
		}
результат - Socket[addr=localhost/127.0.0.1,port=3111,localport=1314] - не похоже на число, к тому же мне нужно розсилать дание клиентам по сокету send(client_name, socket); и нет смисла создавать бд без клиентскых сокетов

Последний раз редактировалось legendary; 29.05.2011 в 18:52.
legendary вне форума Ответить с цитированием
Старый 29.05.2011, 20:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

НУ выдирай поля из записи сокета и записывай в базу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.05.2011, 20:20   #5
legendary
Форумчанин
 
Аватар для legendary
 
Регистрация: 21.04.2010
Сообщений: 125
По умолчанию

а как потом строку перевести в сокет?
legendary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сокеты в C++ MiRiN Общие вопросы C/C++ 5 06.05.2010 16:53
C#, сокеты Namolem Помощь студентам 0 06.05.2010 10:53
сокеты в С TDrive C/C++ Сетевое программирование 6 03.03.2010 11:59
Сокеты Pavelok Работа с сетью в Delphi 3 16.09.2009 16:57
сокеты cross Работа с сетью в Delphi 2 21.12.2006 18:12