Tcp/Ip how do i request server to accept my request to join your server on Android?

Viewed 26

I'm working on simple TCP/IP application on Android that sends/receives packages.

I have set up code to find to host and join network. My code works where client is able to auto join the server when it's available, however, when i discover a open server, i want to send request/message to server that I want to join your server.

here's my code.

// Activity to hold our server socket
serverSocket: ServerSocket? = null

// Create a listen socket
val port: Int
serverSocket = ServerSocket(0).also { socket ->
    // Store the chosen port.
    port = socket.localPort
}

Thread(Runnable {
    while (serverSocket != null) {
        try {
            serverSocket?.accept()?.let {
                Log.d("ServerSocket", "accepted client")

                // client found, connect to client automatically
                connectToClient()
            }
        } catch (e: SocketException) {
            break
        }
    }
}).start()

nsdManager.registerService(serviceInfo, NsdManager.PROTOCOL_DNS_SD, registrationListener)

than for client i'm using this to discover server

nsdManager.discoverServices("_LocalNetworkingApp._tcp.", NsdManager.PROTOCOL_DNS_SD, discoveryListener)


private val discoveryListener = object : NsdManager.DiscoveryListener {

...
override fun onServiceFound(service: NsdServiceInfo) {
        Log.d(TAG, "Service found ${service.serviceName}")
        
        nsdManager.resolveService(service, resolveListener)
    }

}

// in resolverServices' `onServiceResolved` function  is where i'm connected to the server

0 Answers
Related