МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


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


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

Пример 4.2. Организация пересылки datagram на основе UDP соединения





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

Серверная часть приложения:

 

import java.net.*;

import java.util.*;

public class UDPServer { //заголовок класса

public UDPServer() { //конструктор

try {

System.out.println("Receiving packets..."); //вывод сообщения

DatagramSocket ds=new DatagramSocket(61); //номер прослушиваемого порта

while (true) { // бесконечный цикл

Date date;

byte data[]=new byte[6]; //организация массива под дату

DatagramPacket dp = new DatagramPacket(data, 6); //заготовка пакета

ds.receive(dp); //ожидение обращения

int clientPort=dp.getPort(); //получить номер порта клиента

InetAddress clientAddress=dp.getAddress(); //получить адрес узла клиента

date = new Date(); //организовать объект

data[0]=(byte)date.getDate(); //получить число, месяц, год, мин., сек.

data[1]=(byte)date.getMonth();

data[2]=(byte)date.getYear();

data[3]=(byte)date.getHours();

data[4]=(byte)date.getMinutes();

data[5]=(byte)date.getSeconds();

//организовать пакет для клиента

dp = new DatagramPacket(data, 6, clientAddress, clientPort);

//выдать сообщение

System.out.println("Sending packets...");

ds.send(dp); //отослать пакет клиенту

System.err.println("After"); //сообщить

}

}

catch(Exception exc) { //обработка исключений

exc.printStackTrace();

}

}

 

public static void main(String[] args) {

UDPServer udpServer = new UDPServer(); //создать объект udpServer }}

Клиентская часть приложения:

 

import java.net.*;

public class UDPClient {

public UDPClient(String server) {

try {

DatagramSocket ds = new DatagramSocket();

byte data[]=new byte[6];

DatagramPacket dp=new DatagramPacket(data, 6, InetAddress.getByName(server), 61);

ds.send(dp);

System.out.println("Waiting for data...");

dp=new DatagramPacket(data, 6);

ds.receive(dp);

System.out.println("Data's received.");

//формирование даты в удобочитаемом виде и распечатка даты

System.out.print("Date:"+data[0]+"."+(data[1]+1)+"."+(data[2]+1900)+" Time:"+data[3]+"."+data[4]+"."+data[5]); }

catch(Exception exc) { //обработка исключительных ситуаций

exc.printStackTrace();

} }

public static void main(String[] args) { //при запуске указать доменное имя

UDPClient udpClient = new UDPClient(args[0]); //сервера

} }

Задания для самостоятельного выполнения

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

Возможности клиента:

– передать серверу исходные параметры (вводятся с клавиатуры) для расчета значения функции;

– получить расчетное значение функции

Возможности сервера:

– по полученным от клиента исходным параметрам рассчитать значение функции;

– передать клиенту расчетное значение функции;

– сохранить исходные параметры и значение функции в файл.

 

Варианты:

1. Y=

2. Y=

3. Y=

4. Y=

5. Y=

6. Y=

7. Y=

8. Y=

9. Y=

10. Y= )

11. Y=

12. Y=

13. Y=

14. Y=

15. Y=

16.

17.

18.

 

19.

20.

 

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

 

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.