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

Тип работы:
Лабораторная работа
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

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

з курсу:

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

Львів 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. Протокол виконання програми

ПоказатьСвернуть
Заполнить форму текущей работой