Вы находитесь на странице: 1из 14

1

Marius Herghelegiu 

Dashboard  My courses  FCIM.PCD16.1  Examen  Atestarea 2

Started on Wednesday, 30 November 2022, 7:00 PM


State Finished
Completed on Wednesday, 30 November 2022, 7:40 PM
Time taken 40 mins 28 secs
Grade 10 out of 10 (95%)


Question 1 Complete Mark 1 out of 1

Clasa Socket poate sa fie instantiata prin constructorii  de mai jos:

Конструкторы  приведенные ниже  могут создать экземпляр класса Socket:

Creaza un socket catre


server de la portul
specificat, host-ul este
indicat de adresa IP. public Socket(InetAddress host, int port)

Создает сокет к серверу


из указанного порта, хост
указывается IP-адресом.

Creaza un socket catre


serverul specificat de la
portul specificat. 
public Socket(String host, int port, InetAddress localAddress, int localPort)
Создает сокет для
указанного сервера из
указанного порта.

Se conecteaza la host-ul
si portul specificat,
creand un socket la
adresa si portul
specificat. 
public Socket(String host, int port)
Он подключается к
указанному хосту и порту,
создавая сокет по
указанному адресу и
порту.


Creaza un socket
neconectat. Foloseste
metoda connect() ca sa
conecteze socket-ul la
un server.

Создайте public Socket()

неподключенный
сокет. Используя метод
connect () для
подключения сокета к
серверу.


Question 2 Complete Mark 1 out of 1

Care este instrucțiunea din programul dat  prin care se ceează thread pentru clientul curent pe
Server?

Какая команда в данной программе создает поток для текущего клиента на сервере?

class Server {

public static void main(String[] args){ 

try{

ServerSocket ss = new
ServerSocket(Integer.parselnt(args[0])); 

while (true)

new HttpConnect(ss.accept()); 

}catch(ArraylndexOutOfBoundsException ae){ 

System.err.println("Usage: Server port"); 

System.exit(0); 

}catch(IOException e){

System.out.println(e); 

} } }

class HttpConnect extends


Thread{ 

private Socket sock;

HttpConnect(Socket s) { 

sock = s;

setPriority(NORM_PRIORITY - 1); 

start () ; 

public void run(){ 

try{

PrintWriter pw = new PrintWriter(new OutputStreamWriter(

sock.getOutputStream()}, true); 

BufferedReader br = new BufferedReader(new InputStreamReader(

sock.getlnputStream() ) ) ; 

String req = br.readLine(); 

System.out.println("Request: " + req); 



StringTokenizer st = new StringTokenizer(req); 

if ((st.countTokens() >= 2) &&


st.nextToken().equals("POST")){ 

if ((req = st.nextToken()).endsWith("/") II
req.equals(""))

req += "index.html"; 

try{

File f = new File(req); 

BufferedReader bfr =

new BufferedReader(new FileReader(f)); 

char[] data = new char[(int)f.length()]; 

bfr.read(data);

pw.println("HTTP/1.1 200 OK\n"); 

pw.write(data); 

pw.flush(); 

}catch(FileNotFoundException fe){

pw.println("HTTP/1.1 404 Not FoundXn"); 

}catch(lOException ioe){

System.out.println(ioe); 

}else pw.println("HTTP/l.l 400 Bad RequestW); 

sock.close(); 

}catch(IOException e){

System.out.println(e); 

} } }

Answer: new HttpConnect(ss.accept());


Question 3 Complete Mark 1 out of 1

Care va fi prioritatea thread-urilor create pentru fiecare client conectat la server?

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

class Server!

public static void main(String[] args){ 

try{

ServerSocket ss = new
ServerSocket(Integer.parselnt(args[0])); 

while (true)

new HttpConnect(ss.accept()); 

}catch(ArraylndexOutOfBoundsException ae){ 

System.err.println("Usage: Server port"); 

System.exit(0); 

}catch(IOException e){

System.out.println(e); 

} } }

class HttpConnect extends


Thread{ 

private Socket sock;

HttpConnect(Socket s) { 

sock = s;

setPriority(NORM_PRIORITY - 1); 

start () ; 

public void run(){ 

try{

PrintWriter pw = new PrintWriter(new OutputStreamWriter(

sock.getOutputStream()}, true); 

BufferedReader br = new BufferedReader(new InputStreamReader(

sock.getlnputStream() ) ) ; 

String req = br.readLine(); 

System.out.println("Request: " + req);  


StringTokenizer st = new StringTokenizer(req); 
if ((st.countTokens() >= 2) &&
st.nextToken().equals("POST")){ 

if ((req = st.nextToken()).endsWith("/") II
req.equals(""))

req += "index.html"; 

try{

File f = new File(req); 

BufferedReader bfr =

new BufferedReader(new FileReader(f)); 

char[] data = new char[(int)f.length()]; 

bfr.read(data);

pw.println("HTTP/1.1 200 OK\n"); 

pw.write(data); 

pw.flush(); 

}catch(FileNotFoundException fe){

pw.println("HTTP/1.1 404 Not FoundXn"); 

}catch(lOException ioe){

System.out.println(ioe); 

}else pw.println("HTTP/l.l 400 Bad RequestW); 

sock.close(); 

}catch(IOException e){

System.out.println(e); 

} } }

Answer: 4


Question 4 Complete Mark 1 out of 1

In care rînd a codului de program se cează firul de execuție la cererea  clientului?

В какой строке программного кода создается поток для  клиентского  запроса?

1)      public static final int PORT = 8100;

2)      private static ServerSocket serverSocket = null;

3)      private Socket clientSocket = null;

4)      public void run() {

5)      String cerere, raspuns;

6)      try {

7)      BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()


));

8)      PrintWriter out = new PrintWriter(clientSocket.getOutputStream() );

9)      cerere = in.readLine();

10)   raspuns = "hello " + cerere;

11)   out.println(raspuns);

12)   out.flush(); }

13)   catch (IOException e) {

14)   System.err.println("Eroare de citire/scriere \n" + e);}

15)   finally {

16)   try {

17)   clientSocket.close();}

18)    catch (IOException e) {System.err.println("Socketul nu poate fi inchis \n" + e);}}}

19)   public SimpleServer() throws IOException {

20)   serverSocket = new ServerSocket(PORT);

21)   try {

22)   clientSocket = serverSocket.accept();

23)   new Thread(this).start();}

24)    finally {serverSocket.close();}}

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

26)   SimpleServer server = new SimpleServer();

}

}

Answer: 23


Question 5 Complete Mark 1 out of 1

De la care rînd a codului de program pînă la care rînd se ceează adresa IP a serverului și portul la
care serverul ofera serviciul?                     Răspunsul să fie de forma  12-18.  

От какой строки программного кода до какой строки создаются IP-адрес сервера и порт, на котором
сервер предоставляет услугу?                      Ответ должен быть в форме 12-18. 

1)      public class SimpleClient {

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

3)      String serverAddress = "127.0.0.1";

4)      int PORT = 8100;

5)      Socket clientSocket = null;

6)      PrintWriter out = null;

7)      BufferedReader in = null;

8)      String cerere, raspuns;

9)      try { clientSocket = new Socket(serverAddress, PORT);

10)   out = new PrintWriter(clientSocket.getOutputStream(), true);

11)   in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

12)   cerere = "duke";

13)   out.println(cerere);

14)   raspuns = in.readLine();

15)   System.out.println(raspuns);}

16)    catch (UnknownHostException e) {System.err.println("Serverul nu poate figasit \n" + e);

17)   System.exit(1);}

18)    finally {

19)   if (out != null) out.close();

20)   if (in != null) in.close();

21)   if (clientSocket!= null) clientSocket.close();

Answer: 3-4 
Question 6 Complete Mark 1 out of 1

De la care rînd a codului de program pînă la care rînd se construieste si trimite pachetul cu cerere
catre server?                            Răspunsul să fie de forma  12-18 sau 15  

От какой строки программного кода до какой строки создается и отправляется  пакет запроса на
сервер?                                           Ответ должен быть в форме 

1)      public class DatagramClient {

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

3)      InetAddress address = InetAddress.getByName("127.0.0.1");

4)      int port=8200;

5)      DatagramSocket socket = null;

6)      DatagramPacket packet = null;

7)      byte buf[];

8)      try {

9)      socket = new DatagramSocket();

10)   buf = "Salut".getBytes();

11)   packet = new DatagramPacket(buf, buf.length, address, port);

12)   socket.send(packet);

13)   packet = new DatagramPacket(buf, buf.length);

14)   socket.receive(packet);

15)   System.out.println(new String(packet.getData()));}

16)   finally {socket.close();

}}}

Answer: 11-12


Question 7 Complete Mark 1 out of 1

În care rînd a codului de program pentru gruparea mai multor clienti,  clientul părăsește  grupul?

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

1)      public class MulticastClient {

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

3)      InetAddress group = InetAddress.getByName("230.0.0.1");

4)      int port=4444;

5)      MulticastSocket socket = null;

6)      byte buf[];

7)      try {

8)      socket = new MulticastSocket(port);

9)      socket.joinGroup(group);

10)   buf = new byte[256];

11)   DatagramPacket packet = new DatagramPacket(buf, buf.length);

12)   socket.receive(packet);

13)   System.out.println(new String(packet.getData()));}

14)   finally {

15)   socket.leaveGroup(group);

16)   socket.close();

}}}

Answer: 15


Question 8 Complete Mark 2 out of 2

De la care rînd a codului de program pînă la care rînd se trimite un pachet cu raspunsul către client? 
                                          Răspunsul să fie de forma  12-18 sau dacă e un rând 15  

От какой строки программного кода до какой строки отправляется ответный пакет заказчику?                 
                             Ответ должен быть в форме 12-18 или если одна строка 15 

1)      public class DatagramServer {

2)      public static final int PORT = 8200;

3)      private DatagramSocket socket = null;

4)      DatagramPacket cerere, raspuns = null;

5)      public DatagramServer() throws IOException {

6)      Socket = new DatagramSocket(PORT);

7)      try{

8)      while (true) {

9)      byte[] buf = new byte[256];

10)   cerere = new DatagramPacket(buf, buf.length);

11)   socket.receive(cerere);

12)   InetAddress adresa = cerere.getAddress();

13)   int port = cerere.getPort();

14)   buf = ("Hello " + new String(cerere.getData())).getBytes();

15)   raspuns = new DatagramPacket(buf, buf.length, adresa, port);

16)   socket.send(raspuns);}}

17)    finally {socket.close();}}

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

19)   new DatagramServer();

}}

Answer: 16


Question 9 Complete Mark 1 out of 1

Acest protocol nu stabileste o conexiune permanenta între cele doua calculatoare.

Этот протокол не устанавливает постоянного соединения между двумя компьютерами.

Answer: UDP

◄ Atestarea 1 Jump to... Test 1 ►

Вам также может понравиться