File tree Expand file tree Collapse file tree 5 files changed +110
-0
lines changed
src/javagameengine/networking Expand file tree Collapse file tree 5 files changed +110
-0
lines changed Original file line number Diff line number Diff line change 1414 <orderEntry type =" sourceFolder" forTests =" false" />
1515 <orderEntry type =" library" name =" KotlinJavaRuntime" level =" project" />
1616 <orderEntry type =" library" name =" Maven: org.jetbrains.kotlin:kotlin-script-runtime:1.6.10" level =" project" />
17+ <orderEntry type =" library" name =" gson-2.9.0" level =" project" />
1718 </component >
1819</module >
Original file line number Diff line number Diff line change 1+ package javagameengine .networking ;
2+
3+ import javagameengine .msc .Vector2 ;
4+
5+ import java .util .LinkedList ;
6+
7+ class Header
8+ {
9+ String clientId ;
10+ String custom ; // Pack data into a string.
11+ }
12+
13+ class Body
14+ {
15+ LinkedList <obVec > deltaPos = new LinkedList <obVec >();
16+ }
17+
18+ class obVec
19+ {
20+ String ID ;
21+ Vector2 vec ;
22+ }
23+
24+ public class BufferData {
25+ Header h ;
26+ Body b ;
27+ }
Original file line number Diff line number Diff line change 1+ package javagameengine .networking ;
2+
3+ import com .google .gson .Gson ;
4+
5+ import java .io .BufferedReader ;
6+ import java .io .IOException ;
7+ import java .io .InputStream ;
8+ import java .io .InputStreamReader ;
9+ import java .net .ServerSocket ;
10+ import java .net .Socket ;
11+
12+ public class Tcp_server extends Thread {
13+ public ServerSocket socket ; // Socket to listen on
14+ public Socket i_socket ; // Start listening on socket
15+
16+ public Tcp_server ()
17+ {
18+ try {
19+ socket = new ServerSocket (8074 );
20+ i_socket = socket .accept ();
21+ } catch (IOException e ) {
22+ throw new RuntimeException (e );
23+ }
24+ }
25+
26+ public InputStream input ;
27+ public BufferedReader reader ;
28+
29+ public BufferData read_client ()
30+ {
31+ String data ;
32+ BufferData parsed = new BufferData ();
33+ try {
34+ input = i_socket .getInputStream ();
35+
36+ reader = new BufferedReader (new InputStreamReader (input ));
37+ data = reader .readLine ();
38+
39+ Gson json_parser = new Gson ();
40+
41+ parsed = json_parser .fromJson (data , BufferData .class );
42+ } catch (IOException e ) {
43+ throw new RuntimeException (e );
44+ }
45+ return parsed ;
46+ }
47+ }
Original file line number Diff line number Diff line change 1+
2+ ############################################
3+ MULTIPLAYER
4+ ############################################
5+
6+ [Client - Server]
7+
8+ -> Start server (create socket)
9+ -> Create buffer listener on socket
10+
11+ **********
12+ {READER}
13+ -> Read string from client
14+ -> Convert from JSON to class
15+ {{{ (Aforementioned class):
16+ {
17+ Header: {
18+ ClientID: ...
19+ Custom: /* Anything the developer would like to know which is separate from the game events */
20+ }
21+ Body: {
22+ deltaPos: [{objectID, vector2}] /* To include changes in objects position (Update) */
23+ }
24+ }
25+ }}}
26+ // The aforementioned class is the same one used for sending data
You can’t perform that action at this time.
0 commit comments