Rahul/socket/read/pr4 (#6575)
* Making examples simple * Changing variable names * Modificatons in naming * Review changes
This commit is contained in:
		
							parent
							
								
									4151e55d3b
								
							
						
					
					
						commit
						cc73a3051b
					
				| @ -1,35 +1,27 @@ | ||||
| package com.baeldung.socket.read; | ||||
| 
 | ||||
| import java.net.*;  | ||||
| import java.net.*; | ||||
| import java.nio.charset.StandardCharsets; | ||||
| import java.io.*;  | ||||
| 
 | ||||
| public class Client { | ||||
| 
 | ||||
|     //Initialize socket, input and output stream | ||||
|     private Socket socket = null; | ||||
|     private DataInputStream in = null; | ||||
|     private DataOutputStream out = null; | ||||
|      | ||||
|     public void runClient(String ip, int port) { | ||||
|         try { | ||||
|             socket = new Socket(ip, port); | ||||
|             Socket socket = new Socket(ip, port); | ||||
|             System.out.println("Connected to server ..."); | ||||
|             in = new DataInputStream(System.in); | ||||
|             out = new DataOutputStream(socket.getOutputStream()); | ||||
|         } catch(Exception e) { | ||||
|             e.printStackTrace(); | ||||
|         } | ||||
|         char type = 's'; // s for string | ||||
|         int length = 29; | ||||
|         String data = "This is a string of length 29"; | ||||
|         byte[] dataInBytes = data.getBytes();          | ||||
|         //Sending data in TLV format         | ||||
|         try { | ||||
|             DataInputStream in = new DataInputStream(System.in); | ||||
|             DataOutputStream out = new DataOutputStream(socket.getOutputStream()); | ||||
|              | ||||
|             char type = 's'; // s for string | ||||
|             int length = 29; | ||||
|             String data = "This is a string of length 29"; | ||||
|             byte[] dataInBytes = data.getBytes(StandardCharsets.UTF_8);          | ||||
|             //Sending data in TLV format         | ||||
|             out.writeChar(type); | ||||
|             out.writeInt(length); | ||||
|             out.write(dataInBytes); | ||||
|         } catch (IOException e) { | ||||
|             // TODO Auto-generated catch block | ||||
|             e.printStackTrace(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -1,48 +1,46 @@ | ||||
| package com.baeldung.socket.read; | ||||
| 
 | ||||
| import java.net.*;  | ||||
| import java.net.*; | ||||
| import java.nio.charset.StandardCharsets; | ||||
| import java.io.*;  | ||||
| 
 | ||||
| public class Server { | ||||
| 
 | ||||
|     //Socket and input stream | ||||
|     private Socket socket = null; | ||||
|     private ServerSocket server = null; | ||||
|     private DataInputStream in = null; | ||||
|      | ||||
|     public void runServer(int port) { | ||||
|         //Start the server and wait for connection | ||||
|         try { | ||||
|             server = new ServerSocket(port); | ||||
|             ServerSocket server = new ServerSocket(port); | ||||
|             System.out.println("Server Started. Waiting for connection ..."); | ||||
|             socket = server.accept(); | ||||
|             Socket socket = server.accept(); | ||||
|             System.out.println("Got connection from client."); | ||||
|             //Get input stream from socket variable and convert the same to DataInputStream | ||||
|             in = new DataInputStream(new BufferedInputStream(socket.getInputStream())); | ||||
|             DataInputStream in = new DataInputStream(new BufferedInputStream(socket.getInputStream())); | ||||
|             //Read type and length of data | ||||
|             char dataType = in.readChar(); | ||||
|             int length = in.readInt(); | ||||
|             System.out.println("Type : "+dataType); | ||||
|             System.out.println("Lenght :"+length); | ||||
|             //Read String data in bytes | ||||
|             byte[] messageByte = new byte[length]; | ||||
|             boolean end = false; | ||||
|             String dataString = ""; | ||||
|             int totalBytesRead = 0; | ||||
|             //We need to run while loop, to read all data in that stream | ||||
|             while(!end) { | ||||
|                 int currentBytesRead = in.read(messageByte); | ||||
|                 totalBytesRead = currentBytesRead + totalBytesRead; | ||||
|                 if(totalBytesRead <= length) { | ||||
|                     dataString += new String(messageByte,0,currentBytesRead);    | ||||
|                 } else { | ||||
|                     dataString += new String(messageByte,0,length - totalBytesRead + currentBytesRead);  | ||||
|                 } | ||||
|                 if(dataString.length()>=length) { | ||||
|                     end = true; | ||||
|             if(dataType == 's') { | ||||
|                 //Read String data in bytes | ||||
|                 byte[] messageByte = new byte[length]; | ||||
|                 boolean end = false; | ||||
|                 StringBuilder dataString = new StringBuilder(length); | ||||
|                 int totalBytesRead = 0; | ||||
|                 //We need to run while loop, to read all data in that stream | ||||
|                 while(!end) { | ||||
|                     int currentBytesRead = in.read(messageByte); | ||||
|                     totalBytesRead = currentBytesRead + totalBytesRead; | ||||
|                     if(totalBytesRead <= length) { | ||||
|                         dataString.append(new String(messageByte,0,currentBytesRead,StandardCharsets.UTF_8)); | ||||
|                     } else { | ||||
|                         dataString.append(new String(messageByte,0,length - totalBytesRead + currentBytesRead,StandardCharsets.UTF_8)); | ||||
|                     } | ||||
|                     if(dataString.length()>=length) { | ||||
|                         end = true; | ||||
|                     } | ||||
|                 } | ||||
|                 System.out.println("Read "+length+" bytes of message from client. Message = "+dataString); | ||||
|             } | ||||
|             System.out.println("Read "+length+" bytes of message from client. Message = "+dataString);; | ||||
|         } catch (Exception e) { | ||||
|             e.printStackTrace(); | ||||
|         } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user