|Note that the following implementation will fail instantiating the socket server, because it will be running MAIN thread.|
So, please read the next implementation. The NodeJS based implementation is shorter and efficient.
"[Java] Try to send a simple packet #info request to a server in the local network. Note that if this method fails to create Socket it can be related with Threading and/or permission issues" | address socket output input line | self print: 'About to create socket'. address := InetAddress getByName: '192.168.1.106'. socket := Socket address: address port: 8088. self print: 'About to create output'. output := PrintWriter on: socket outputStream buffered. self print: 'About to send data to server'. output println: 'info '. self print: 'Data sent to server'. output flush; close. self print: 'About to create input'. input := socket inputStream buffered. self print: 'About to read response from server'. [ line := input readLine. line notNil ] whileTrue: [ self print: line ]. input close. socket close. self print: #done
"[NodeJS] Try to send a simple packet #info request to a server in the local network." | client | client := NodeJS net connect: 8088 with: '192.168.1.106' with: [ self print: #connected. client write: 'info ' ]. client on: #data do: [:data| self print: data. client destroy ]. client on: #close do: [ self print: #closed ]. client on: #error do: [:ex| self print: #error ,$= ,ex ].