User Tools

Site Tools


tanszek:oktatas:tcp_socket_connection

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:tcp_socket_connection [2023/02/26 15:45] – [1.) Hagyományos blokkolt TCP alapú socket szerver] kneheztanszek:oktatas:tcp_socket_connection [2023/02/27 09:16] (current) – [Exercise 1.] knehez
Line 1: Line 1:
-====== Exercise ======+====== Socket client and server exercises ====== 
 + 
 +==== Exercise 1. ====
  
 Create a simplified FTP (file transport) client and server where the client can send or download text files from the server: Create a simplified FTP (file transport) client and server where the client can send or download text files from the server:
Line 7: Line 9:
   -) Server sends back the list of the downloadable files   -) Server sends back the list of the downloadable files
   -) Client lists the files and asks the user what action they want to take? Upload or download? ('u' or 'd'   -) Client lists the files and asks the user what action they want to take? Upload or download? ('u' or 'd'
-  -) In both cases the uses must give the full file name with extension+  -) In both cases users must give the full file name with extension
   -) The client sends the selected file to the server (upload) or downloads the selected file from the server to a specific directory.   -) The client sends the selected file to the server (upload) or downloads the selected file from the server to a specific directory.
  
Line 26: Line 28:
   -) If you press "u", /files/ is sent to the server   -) If you press "u", /files/ is sent to the server
  
-====== Starting point of implementation ======+==== TCP style ==== 
  
  
Line 173: Line 176:
     }     }
 </code> </code>
-==== 2.) Hagyományos UDP alapú kommunikáció ====+==== Traditional UDP style ====
  
-2.a) Az alábbi Ágens küld egy üzenetet és a 8080-as porton várja a választ ráugyancsak UDP-velAz eclipse fejlesztőkörnyezetben a consolon beírt szöveget ctrl+z leütésével lehet elküldeni.+The following Agent sends message and waits for response on port 8080, also with UDP. In the Eclipse IDE, the text you type on the console can be sent by pressing ctrl+z
  
-**Feladat**: módosítsuk a kódot, hogy át tudjon küldeni egy beégetett nevű, és létező, kbyte-nál nagyobb szöveges vagy kép állományt és ellenőrizzük sikeres küldést.+== Exercise 2. ==  
 +Modify the code so that you can transfer burned-in name and existing text or image file larger than 2 kbytes and verify that it was successfully sent.
  
 <code java> <code java>
Line 207: Line 211:
  String modifiedSentence = new String(receivePacket.getData());  String modifiedSentence = new String(receivePacket.getData());
   
- System.out.println("átalakítva:" + modifiedSentence);+ System.out.println("converted:" + modifiedSentence);
  clientSocket.close();  clientSocket.close();
  }  }
Line 213: Line 217:
 </code> </code>
  
-2.b) Az UDP szerver a 8080-as porton várja az ágensek üzeneteit és nagybetűre konvertálva visszaküldi a kliens UDP socketre.+2.b) The UDP server waits for the agents messages on port 8080 and converts them to uppercase letters and sends them back to the client UDP socket.
  
 <code java> <code java>
Line 232: Line 236:
   
  DatagramPacket receivePacket = new DatagramPacket(bytesReceived, bytesReceived.length);  DatagramPacket receivePacket = new DatagramPacket(bytesReceived, bytesReceived.length);
- // itt várakozik ameddig adat jön a 8080-as porton+ // here we are waiting for the packets
  serverSocket.receive(receivePacket);  serverSocket.receive(receivePacket);
   
- String szoveg = new String(receivePacket.getData());+ String textMessage = new String(receivePacket.getData());
   
- System.out.println("kaptam: " + szoveg);+ System.out.println("I got: " + textMessage);
   
  InetAddress IPAddress = receivePacket.getAddress();  InetAddress IPAddress = receivePacket.getAddress();
  int port = receivePacket.getPort();  int port = receivePacket.getPort();
   
- String nagybetűsSzöveg szoveg.toUpperCase(); + String upperCaseText textMessage.toUpperCase(); 
- bytesSent = nagybetűsSzöveg.getBytes();+ bytesSent = upperCaseText.getBytes();
   
- // visszaküldi+ // send back
  DatagramPacket sendPacket = new DatagramPacket(bytesSent, bytesSent.length, IPAddress, port);  DatagramPacket sendPacket = new DatagramPacket(bytesSent, bytesSent.length, IPAddress, port);
  serverSocket.send(sendPacket);  serverSocket.send(sendPacket);
tanszek/oktatas/tcp_socket_connection.1677426327.txt.gz · Last modified: 2023/02/26 15:45 by knehez