Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

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

Лабораторна роботаДопомога в написанніДізнатися вартістьмоєї роботи

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

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

Показати весь текст
Заповнити форму поточною роботою