Клієнт-сервер java

Створення баз даних за допомогою стандартних бібліотек Java та клієнт-серверних програм. Основні стандартні класи і методи бібліотек SQL та swing, бібліотек, що дозволяють опрацьовувати дані СУБД та навчитись концепціям програмування мовою Java.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык украинский
Дата добавления 04.10.2011
Размер файла 215,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Лабораторна робота

з курсу:

«Програмне забезпечення мережевих технологій»

Львів 2011

1. Короткі теоретичні відомості

java серверний мова бібліотека

Багато програмних засобів для Інтернету базуються на використанні TCP/IP протоколу. Цей протокол побудований на основі використання мережевих з'єднань - з'єднання спочатку налагоджується, потім здійснюється передача даних, а після цього з'єднання переривається. При створенні серверної програми використовується мережеве з'єднання до програм, що знаходяться на інших комп'ютерах. При з'єднанні відкривається порт з деяким стандартним номером і програма переходить в стан очікування на під'єднання клієнтських програм. При здійсненні з'єднання між клієнтом і сервером останній пропонує першому продовжити взаємодію через порт з іншим номером (ефемерним портом). Через звільнений порт зі стандартним номером будуть встановлюватись нові зв'язки. Номери портів TCP/IP призначаються комітетом IANA (Internet Assigned Numbers Authority). Стандартні номери знаходяться в діапазоні 1ч1023, ефемерні - 1024ч5000.

TCP/IP - сокети (socket) - порти комп'ютерів - використовуються для реалізації двонаправлених з'єднань між двома вузлами мережі Інтернет. Сокети дозволяють організувати взаємодію повноцінних програм і аплетів Java через мережу Internet. Це створює можливості опрацювання інформації за схемою клієнт - сервер, де в ролі сервера може виступати комп'ютер, під'єднаний до мережі, а не тільки Web-сервер. Робоча станція може виступати одночасно у ролі сервера чи клієнта.

Постановка завдання

1. Створити базу даних, що містить декілька таблиць.

2. Запрограмувати доповнення записів даних в таблицях.,

3. Запрограмувати видалення записів даних.

4. Запрограмувати фільтрацію даних.

5. Написати фрагменти програм доступу до СУБД, формування запитів, отримання таблиць - результатів запитів, перенесення результатів

6. Створити клас клієнта та сервера.

2. Хід виконання роботи

1. Код програми:

import java.io.*;

import java.net.*;

import java.sql.*;

public class hs {

 // -add

public static void add (String name, String surname, String group, String institute, Statement st, PrintWriter out)

{

if (name.equals(«»)||surname.equals(«»)||group.equals(«»)||institute.equals(«»))

{

out.println («Невдалий ввід»);

}

else

{

int id_st = 0,

id_gr = 0,

id_in = 0,

count = 0;

try

{

ResultSet rs1 = st.executeQuery («Select id from student»);

while (rs1.next())

{

id_st = rs1.getInt («id»);

}

id_st+=1;

rs1 = st.executeQuery («Select id, group1 from groupdb»);

while (rs1.next())

{

if (group.equals (rs1.getString («group1»))) id_gr = rs1.getInt («id»);

count = rs1.getInt («id»);

}

if (id_gr == 0)

{

id_gr = count+1;

int rs5 = st.executeUpdate («insert into groupdb (group1, id) values ('»+group+«', ' «+id_gr+» ')»);

}

rs1 = st.executeQuery («Select id, institute1 from institute»);

while (rs1.next())

{

if (institute.equals (rs1.getString («institute1»))) id_in = rs1.getInt («id»);

count = rs1.getInt («id»);

}

if (id_in == 0)

{

id_in = count+1;

int rs4 = st.executeUpdate («insert into institute (institute1, id) values ('»+institute+«', ' «+id_in+» ')»);

}

int rs2 = st.executeUpdate («insert into student (name, surname, id) values ('»+name+«', ' «+surname+» ', ' «+id_st+» ')»);

int rs3 = st.executeUpdate («insert into main (id_st, id_gr, id_in) values ('»+id_st+«', ' «+id_gr+» ', ' «+id_in+» ')»);

}

catch (SQLException e) {System.out.println («Error»+e);}

}

out.println («exit»);

}

 // -del

public static void del (String id, Statement st, PrintWriter out)

{

try {

int f=0;

ResultSet res = st.executeQuery («Select * from student where id ="+id);

while (res.next())

{

f=1;

}

if (f==1)

{

st.executeUpdate («delete from main where id_st = «+id);

st.executeUpdate («delete from student where id = «+id);

out.println («Добре»);

}

else out.println («Такого id немає в базі»);

}

catch (SQLException e) {System.out.println («Таких записів немає»);}

out.println («exit»);

}

 // -vyvid

public static void vyvid (Statement st, PrintWriter out)

{

try {

ResultSet r = st.executeQuery («select * from student join groupdb join institute join main on student.id=main.id_st and groupdb.id = main.id_gr and institute.id = main.id_in»);

while (r.next())

{

out.println (r.getString («id»)+».»);

out.println (r.getString («name»)+»»);

out.println (r.getString («surname»)+»»);

out.println (r.getString («group1»)+»»);

out.println (r.getString («institute1»));

}

} catch (SQLException e) {

System.out.println («Error»+e);

}

out.println («exit»);

}

 // -filtr

public static void filtr (Statement st, String tb_name, String f_name, String f_value, PrintWriter out)

{

boolean flag = true;

try {

ResultSet r = st.executeQuery («select * from student join groupdb join institute join main on student.id=main.id_st and groupdb.id = main.id_gr and institute.id = main.id_in and «+tb_name+». «+f_name+» = '»+f_value+ «'»);

while (r.next())

{

out.println (r.getString («name»)+»»);

out.println (r.getString («surname»)+»»);

out.println (r.getString («group1»)+»»);

out.println (r.getString («institute1»)+»\n»);

flag = false;

}

} catch (SQLException e) {}

if (flag) out.println («Записів не знайдено»);

out.println («exit»);

}

 // -query

public static void query (String sql, String col, PrintWriter p, BufferedReader in, Statement st)

{

try

{

ResultSet res = st.executeQuery(sql);

while (res.next())

{

p.println (res.getString(col));

}

}

catch (SQLException e) {}

p.println («exit»);

}

 // -short_query

public static void short_query (String sql, Statement st, PrintWriter p)

{

try

{

ResultSet res = st.executeQuery(sql);

while (res.next())

{

p.println (res.getString («id»));

p.println (res.getString («name»));

p.println (res.getString («surname»));

}

}

catch (Exception e){}

p.println («exit»);

}

 // -global

static Connection conn = null;

static Statement st = null;

 // -main

public static void main (String[] args) throws IOException

{

System.out.println («Welcome to Server side»);

BufferedReader in = null;

PrintWriter out= null;

ServerSocket servers = null;

Socket fromclient = null;

try {

servers = new ServerSocket(4444);

} catch (IOException e) {

System.out.println («Couldn't listen to port 4444»);

System.exit(-1);

}

try {

System.out.print («Waiting for a client…»);

fromclient= servers.accept();

System.out.println («Client connected»);

}

catch (IOException e) {

System.out.println («Can't accept»);

System.exit(-1);

}

in = new BufferedReader (new InputStreamReader (fromclient.getInputStream()));

out = new PrintWriter (fromclient.getOutputStream(), true);

String input, output;

try

{

String userName = «root»;

String password = «vonk11»;

String url = «jdbc:mysql://localhost/test»;

Class.forName («com.mysql.jdbc. Driver»).newInstance();

conn = DriverManager.getConnection (url, userName, password);

System.out.println («Database connection established»);

Statement st = conn.createStatement();

while (true)

{

input = in.readLine();

if (input.equals («vyvid»)) vyvid (st, out);

if (input.equals («add»))

{

String a = in.readLine(),

b = in.readLine(),

c = in.readLine(),

d = in.readLine();

add (a, b, c, d, st, out);

}

if (input.equals («del»))

{

String a = in.readLine();

del (a, st, out);

}

if (input.equals («filtr»)) {

String a = in.readLine(),

b = in.readLine(),

c = in.readLine();

filtr (st, a, b, c, out);}

if (input.equals («query»))

{

String a = in.readLine(),

b = in.readLine();

query (a, b, out, in, st);

}

if (input.equals («short»))

{

String a = in.readLine();

short_query (a, st, out);

}

}

}

catch (Exception e) {System.out.println («Error» + e);}

out.close();

in.close();

fromclient.close();

servers.close();

}

3. Протокол виконання програми

Размещено на Allbest.ru


Подобные документы

  • Історія розвитку мови Java, основні технології та їх застосування для роботи з SQL-серверами. Огляд багатопоточного програмування в Java. Принципи функціонування сервлетів та JSP-сторінок. Зміна розміру графічних об’єктів, робота з кольорами в Java.

    курсовая работа [49,3 K], добавлен 29.03.2010

  • Розробка та тестування додатків, які базуються на елементах мови програмування Java, принципи програмування в її середовищі. Вивчення переваг Java-платформи, прикладний програмний інтерфейс та особливості сучасних засобів створення Java-додатків.

    дипломная работа [2,8 M], добавлен 22.06.2011

  • Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.

    курсовая работа [508,1 K], добавлен 10.11.2014

  • Общее понятие о пакете "java.net". Логическая структура соединений через сокеты. Создание объекта Socket, соединение между узлами Internet. Способы создания потока. Алгоритм работы системы клиент-сервер. Листинг ServerForm.java, запуск подпроцесса.

    лабораторная работа [174,6 K], добавлен 27.11.2013

  • Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.

    курсовая работа [208,6 K], добавлен 03.12.2013

  • Концепції об'єктно-орієнтованого програмування. Методи створення класів. Доступ до методів базового класу. Структура даних, функції. Розробка додатку на основі діалогових вікон, програми меню. Засоби розробки програмного забезпечення мовами Java та С++.

    курсовая работа [502,5 K], добавлен 01.04.2016

  • Робота з клієнт-серверними додатками на основі сокетів. Розробка програм сервера та клієнта для обробки запитів клієнта сервером. Можливості програм сервера та клієнта. Створення гри "хрестики-нулики" на основі сокетів. Програмне забезпечення сервера.

    лабораторная работа [181,8 K], добавлен 23.05.2015

  • Сучасний стан автоматизації бібліотек різних статусів. Основні шляхи інтеграції інформаційних технологій в систему шкільних бібліотек. Проблеми створення комп'ютеризованих читальних залів. Етапи впровадження довідково-інформаційного обслуговування.

    курсовая работа [52,7 K], добавлен 15.03.2011

  • Принцип работы Java. Аплеты как особенность Java-технологии, характеристика методов их защиты. Модель безопасности JDK1.2 и концепция "песочницы". Иерархия криптографических сервисов, алгоритмов. Объектная организация криптографической подсистемы Java.

    реферат [54,8 K], добавлен 09.09.2015

  • Загальна характеристика та особливості програмування сучасних систем автоматизованого проектування. Порівняльна характеристика середовищ розробки прикладних програм на мові JAVA. Ознайомлення з принципами і особливостями роботи певних класів, компонентів.

    курсовая работа [2,0 M], добавлен 31.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.