sockets - My server responds that request received but doesn't show encrypted text and decrypted in java -
my problem making client/server can cryptography using beaufortalgo. server after receiving request stuck in processing , doesn't give response in form of data. please help.
this server side app
// step 1: importing required package import java.net.*; import java.util.scanner; import java.io.*; import javax.swing.*; public class echoserver{ public static void main(string args[]){ try { //step 2: create server socket serversocket ss = new serversocket(1555); system.out.println("server started..."); /* loop accept method of server socket , wait new connection request. server continuously listen requests */ while(true) { // step 3: wait incoming connection socket s = ss.accept(); system.out.println("connection request recieved"); // step 4: i/o streams inputstream = s.getinputstream(); inputstreamreader isr= new inputstreamreader(is); bufferedreader br = new bufferedreader(isr); outputstream os = s.getoutputstream(); printwriter pw = new printwriter(os,true); // step 5: send / receive message // reading name sent client string name = br.readline(); // appending “hello” received name string msg = "hello server recieved message"; // sending client // code encrption decryption string key,plain,cipher="",compstring; compstring="abcdefghijklmnopqrstuvwxyz"; int charinc=0,diff,ciphernum=0; char tablechar='a',plainchar; key="doeeephoeee"; key=key.tolowercase(); key=key.replaceall(" ",""); plain=msg; plain=plain.tolowercase(); plain=plain.replaceall(" ",""); if(key.length()<plain.length()) { diff=plain.length()-key.length(); for(int i=0;i<diff;i++) { key=key+key.charat(i); if(i==key.length()) { i=0; } } } for(int ed=0;ed<2;ed++) { for(int k=0;k<key.length();k++) { for(int j=0;j<plain.length();j++) { plainchar=plain.charat(charinc); if(plainchar==tablechar) { tablechar=key.charat(charinc); for(int i=0;i<26;i++) { if(plainchar==compstring.charat(i)) { ciphernum=i; i=26; } } for(int i=0;i<ciphernum;i++) { if(tablechar=='a') { tablechar='z'; i++; } tablechar--; } } else { tablechar++; j--; } } charinc++; cipher=cipher+tablechar; } if(ed==0) { system.out.println("encrypted text: "); system.out.println(cipher); pw.println(cipher); } else { system.out.println("decrypted text: "); system.out.println(cipher); } plain=name; cipher=""; tablechar='a'; ciphernum=0; charinc=0; } // closing communication sockey s.close(); } // end while }catch(exception ex){ system.out.println(ex); } } } // end class
the other part client app down here.
// step 1: importing required package import java.net.*; import java.io.*; import javax.swing.*; public class echoclient{public static void main(string args[]){ try { //step 2: create communication socket /* if server run on same machine can pass “localhost” server address.notice port no similar 1 passed while creating server socket */ socket s = new socket("localhost", 1555); // step 3: i/o streams inputstream = s.getinputstream(); inputstreamreader isr= new inputstreamreader(is); bufferedreader br = new bufferedreader(isr); outputstream os = s.getoutputstream(); printwriter pw = new printwriter(os,true); // step 4: send / receive message // asking user enter his/her name string msg = joptionpane.showinputdialog( "enter message"); // reading message (name appended hello) // server string name = br.readline(); // displaying received message //code encrption decryption string key,plain,cipher="",compstring; compstring="abcdefghijklmnopqrstuvwxyz"; int charinc=0,diff,ciphernum=0; char tablechar='a',plainchar; key="doeeephoeee"; key=key.tolowercase(); key=key.replaceall(" ",""); plain=msg; plain=plain.tolowercase(); plain=plain.replaceall(" ",""); if(key.length()<plain.length()) { diff=plain.length()-key.length(); for(int i=0;i<diff;i++) { key=key+key.charat(i); if(i==key.length()) { i=0; } } } for(int ed=0;ed<2;ed++) { for(int k=0;k<key.length();k++) { for(int j=0;j<plain.length();j++) { plainchar=plain.charat(charinc); if(plainchar==tablechar) { tablechar=key.charat(charinc); for(int i=0;i<26;i++) { if(plainchar==compstring.charat(i)) { ciphernum=i; i=26; } } for(int i=0;i<ciphernum;i++) { if(tablechar=='a') { tablechar='z'; i++; } tablechar--; } } else { tablechar++; j--; } } charinc++; cipher=cipher+tablechar; } if(ed==0) { system.out.println("encrypted text: "); system.out.println(cipher); pw.println(cipher); } else { system.out.println("decrypted text: "); system.out.println(cipher); joptionpane.showmessagedialog(null , cipher); } plain=name; cipher=""; tablechar='a'; ciphernum=0; charinc=0; } // closing communication socket s.close(); }catch(exception ex){ system.out.println(ex); } } } // end class
now see output
output of code
server started... connection request recieved
from have posted have synchronization problems. both client , server calling br.readline() pw.println(). have write on 1 side. example:
// client pw.println ("client connected"); br.readline (); string cipher = br.readline (); //server string msg = br.readline (); pw.println ("server running"); pw.println (cipher);
the thing if 1 side writing other side reading , vice versa.
Comments
Post a Comment