Rapsssito / react-native-tcp-socket

React Native TCP socket API for Android, iOS & macOS with SSL/TLS support.
MIT License
304 stars 80 forks source link

java.net.SocketException: Socket is not connected #134

Closed Kshitijshetty closed 2 years ago

Kshitijshetty commented 2 years ago

I'm trying to connect react native client to node server but its not working.

Client Code:

const connect=()=>{
    var client = TcpSocket.createConnection(port,'host');

      client.on('data', function(data) {
        console.log('message was received', data);
      });

      client.on('error', function(error) {
        console.log(error);
      });

      client.on('close', function(){
        console.log('Connection closed!');
      });

      // Write on the socket
      client.write('Hello server!');

      // Close socket
      client.destroy();

  }

Server Code:

const server = net.createServer(function(socket) {
    socket.on('data', (data) => {
      socket.write('Echo server ' + data);
    });

    socket.on('error', (error) => {
      console.log('An error ocurred with client socket ', error);
    });

    socket.on('close', (error) => {
      console.log('Closed connection with ', socket.address());
    });
  }).listen({ port: port, host: host });

  server.on('error', (error) => {
    console.log('An error ocurred with the server', error);
  });

  server.on('close', () => {
    console.log('Server closed connection');
  });

Current behavior

It is logging: java.net.SocketException: Socket is not connected

and error is this.

image

Relevant information

OS ?
react-native ~0.63.4
react-native-tcp-socket ^5.5.0
Rapsssito commented 2 years ago

@Kshitijshetty, take into account that the socket creation is asynchronous. In your example:

const connect=()=>{
    var client = TcpSocket.createConnection(port,'host', () => {
      // Write on the socket
      client.write('Hello server!');

      // Close socket
      client.destroy();
     });

      client.on('data', function(data) {
        console.log('message was received', data);
      });

      client.on('error', function(error) {
        console.log(error);
      });

      client.on('close', function(){
        console.log('Connection closed!');
      });

  }