java - How do I write Objects through a ObjectOutputStream, when the Objects are created in a different class? -


i've tried sum question, there's more behind it. task @ uni supposed create 2 constructors (english isn't first language)

1) public secureinputstream(inputstream base, outputstream remote)

2) public secureoutputstream(outputstream base, inputstream remote)

1) supposed create bigintegers g,n,k generate public key k=g^k mod n, send g,n , k via remote other side, afterwards suppose read other sides k , create secret s= k^k mod n , initiate random generator it. supposed override write(int b), write encrypt s, using method xor out of biginteger class , send via remote other side.

2) supposed await g.n 1), create it's own k , send via remote. constructor initiate random generator using secret s

our instructor gave 2 "easy" classes client , server, use socket,port situation. problem is, classes each have own input/output stream reads/writes something. how in between there, , more importantly heck information send land once read? 2 days i'm doing reading online , watching tutorials. have understood streams are, although can't understand how work.

how can send several things through stream? how other side know of i'm sending which? how send stuff in general?

i hope can me here. here's code have far, main method our instructor. imagine made imports.

//error method: invalid method declaration, return type missing, //i'm guessing constructor needs sit in class called  //secureinputstream, how can use stuff in class client //when constructor need in another?  public secureinputstream(inputstream base, outputstream remote) {     super();     //g,n,k,s created      biginteger g = biginteger.probableprime(1024, new securerandom());     biginteger n = biginteger.probableprime(1024, new securerandom());     biginteger k = biginteger.probableprime(1024, new securerandom());     biginteger s = biginteger.probableprime(1024, new securerandom());     random r = new random();     r.nextint();     biginteger exponent1 = new biginteger("r");     biginteger exponent2 = new biginteger("k");     k = g.modpow(exponent1, n);     s = k.modpow(exponent2, n);  }  public static void main(string... args) {      socket server = null;      try {         // connect server on local machine ("localhost") , port 3145.         server = new socket("localhost", 3145);          // input stream server , read message         scanner in = new scanner(server.getinputstream());         // if need send messages server:         // outputstream out = server.getoutputstream();          while (in.hasnext()) {             system.out.println(in.nextline());         }         in.close();      } catch (ioexception e) {         e.printstacktrace();     } {         try {             if (server != null) {                 server.close();             }         } catch (ioexception e) {          }     } } 

how write objects through objectoutputstream,

you call objectoutputstream.writeobject().

  • 2nd question didn't ask: how read objects through objectinputstream?

you call objectinputstream.readobject().

  • 3rd question didn't ask: how can discover type of incoming object?

you can discover type of received object via instanceof operator. protocols, including protocol described, don't need that. protocol defines sent when, have read accordingly.

when objects created in different class?

it doesn't make difference objects created.


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -