Felhasználói eszközök

Eszközök a webhelyen


tanszek:oktatas:integration_based_on_tcp_ip_sockets

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Következő változat
Előző változat
tanszek:oktatas:integration_based_on_tcp_ip_sockets [2023/03/05 16:03]
knehez létrehozva
tanszek:oktatas:integration_based_on_tcp_ip_sockets [2023/03/05 16:22] (aktuális)
knehez
Sor 1: Sor 1:
-The client sends requests to the server over a TCP socket connection, and the server responds to these requests with appropriate data.+===== Socket communication =====
  
-Here are the basic steps involved in integrating software systems or components using TCP socket communication:​+The client sends requests to the server over a TCP socket connection, and the server responds to these requests. ​Here are the basic steps involved in integrating software systems or components using TCP socket communication:​
  
-  - Choose ​a protocol: TCP/IP is a common protocol for socket communication,​ but other protocols like UDP can also be used depending on the requirements. +  - **Select ​a protocol**: TCP/IP is a common protocol for socket communication,​ but other protocols like UDP can also be used depending on the requirements. 
-  - Determine the message format: Decide on the format of the messages that will be exchanged between the client and server. This could be a simple text-based format or a more complex binary format. +  - **Determine the message format**: Decide on the format of the messages that will be exchanged between the client and server. This could be a simple text-based format or a more complex binary format. 
-  - Define the communication interface: Define the functions or APIs that will be used for communication between the client and server. +  - **Define the communication interface**: Define the functions or APIs that will be used for communication between the client and server. 
-  - Set up the server: Write the code for the server that listens for incoming client connections and handles incoming requests. +  - **Create ​the server**: Write the code for the server that listens for incoming client connections and handles incoming requests. 
-  - Set up the client: Write the code for the client that connects to the server and sends requests. +  - **Create ​the client**: Write the code for the client that connects to the server and sends requests. 
-  - Handle errors: Implement error handling mechanisms to ensure that communication errors are handled gracefully and do not cause the system to crash or become unstable. +  - **Handle errors**: Implement error handling mechanisms to ensure that communication errors are handled gracefully and do not cause the system to crash or become unstable. 
-  - Test and iterate: Test the system thoroughly and make any necessary changes or improvements to ensure that it is functioning correctly.+  - **Test and iterate**: Test the system thoroughly and make any necessary changes or improvements to ensure that it is functioning correctly.
  
-Summary:+**Features**:
  
-  * Socket ::= IP address + (TCP/UPD) port number+  * Socket ::= IP address + (TCP/UPD) port number. A Socket is a combination of ip address and port number.
   * TCP Sockets provides '​real-time'​ data transfer   * TCP Sockets provides '​real-time'​ data transfer
-     * binary data transfer but can be normal text or XML as well +     * binary data transfer but can be normal text or JSON, XML as well 
-     * no direct method sharing (can be done by hand) +     * no direct method sharing (can be implemented ​by hand) 
-     * TCP and UDP connections are possible. UDP is 3 times quicker but one-way communication+     * TCP and UDP connections are possible. UDP is min 3 times quicker but one-way communication
   * Persistent or On-Demand communication channel   * Persistent or On-Demand communication channel
      * because of connection time-loss usually persistent channels are better, but periodically '​ping'​ messages should be sent. (in order to avoid connection closing). In case of any problems reconnection is possible      * because of connection time-loss usually persistent channels are better, but periodically '​ping'​ messages should be sent. (in order to avoid connection closing). In case of any problems reconnection is possible
      * in case of UDP channels an extra TCP channel is available for synchronizing - in online games      * in case of UDP channels an extra TCP channel is available for synchronizing - in online games
-  * Results in the fastest possible transmission. +  * Results in the fastest possible transmission: 
-     * Where the number of transactions per second up to ~ 20 transactions,​ there should have been applied. (50ms / sec transfer)+     * Where the number of transactions per second up to ~ 50 transactions,​ there should have been applied. (20ms / sec transfer) 
 + 
 + 
 +[[Java example for Blocking and Non-Blocking Socket]] 
 + 
 +** Exercise 1. ** 
 + 
 +Create a simplified FTP (file transport) client and **blocking** server where the client can send or download text files from the server: 
 + 
 +== General use-cases == 
 +  -) Client connects to the server and sends a 'file listing'​ message 
 +  -) 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'​)  
 +  -) 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. 
 + 
 + 
 +== Server viewpoint == 
 +  -) After connecting, it reads the files from the /store subdirectory and sends the file names to the client after receiving the listing message.  
 +  -) We are waiting for the client'​s '​u'​ or '​d'​ operation  
 +  -) We get a filename from the client and if the action is '​d'​ (download), we read the file content and return its contents 
 +  -) If the operation is '​u'​ (upload), we open a new file with the specified name and wait for the data to be written to the file. 
 + 
 +== Client viewpoint == 
 + 
 +  -) The client connects and waits for the list of files coming back and writes it to the console  
 +  -) We ask for the "​u"​ or "​d"​ key  
 +  -) Then we'll ask for the file-name as well.  
 +  -) The client reads the files from the /files folder, or creates the downloaded file here 
 +  -) If you press "​d",​ it creates /files/ and writes data from the server 
 +  -) If you press "​u",​ /files/ is sent to the server 
 + 
 + 
 +** Exercise 2. **  
 +Modify the **non-blocking** code so that you can transfer a burned-in name and existing text or image file larger than 2 kbytes and verify that it was successfully sent. 
 + 
tanszek/oktatas/integration_based_on_tcp_ip_sockets.1678032183.txt.gz · Utolsó módosítás: 2023/03/05 16:03 szerkesztette: knehez