I Made a UI which send Text message from server to client and client to server but when i close  server client should be disconnected but it did't. How to do that ? 
server.b4j
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
client.b4j
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
			
			server.b4j
			
				B4X:
			
		
		
		#Region Project Attributes 
    #MainFormWidth: 300
    #MainFormHeight: 400 
#End Region
Sub Process_Globals
    Private fx As JFX
    Private MainForm As Form
    Public server As ServerSocket   
    Public astream As AsyncStreams
    Private msg1 As TextField
    Private lbl3 As Label
    Private btn1 As Button
End Sub
Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
    MainForm.RootPane.LoadLayout("server_client") 'Load the layout file.
    MainForm.Show       
End Sub
Sub Listen_Connection()
    server.Listen
    If server.IsInitialized = True Then
        Log("Started")
    End If
   
    Wait For Server_NewConnection (Successful As Boolean, NewSocket As Socket)
    If Successful Then
        Log("New Connection")
        lbl3.Text = "Connected"
        astream.Initialize(NewSocket.InputStream, NewSocket.OutputStream, "astream")
    End If
   
End Sub
Sub astream_NewData (Buffer() As Byte)
    Dim msg As String
    msg = BytesToString(Buffer, 0, Buffer.Length, "UTF8")
    Log(msg)
End Sub
   
Sub btn1_MouseClicked (EventData As MouseEvent)   
    server.Initialize(6565,"Server")
    If server.IsInitialized = True Then
        btn1.Text = "Started"
    End If
    'Log(server.GetMyIP())
    Listen_Connection   
End Sub
Sub btn2_MouseClicked (EventData As MouseEvent)
    astream.Write(msg1.Text.GetBytes("utf8"))
    msg1.Text = ""
End Subclient.b4j
			
				B4X:
			
		
		
		#Region Project Attributes 
    #MainFormWidth: 300
    #MainFormHeight: 400 
#End Region
Sub Process_Globals
    Private fx As JFX
    Private MainForm As Form
    Private fx As JFX
    Public socket As Socket
    Private astream As AsyncStreams
    Private txt1 As TextField
    Private btn1 As Button   
    Private msg1 As TextField
    Private lbl3 As Label
    Private sh As Shell
End Sub
Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
    MainForm.RootPane.LoadLayout("client") 'Load the layout file.
    MainForm.Show       
End Sub
Sub Socket_Connected (Successful As Boolean)
    Try
        If socket.Connected = True Then
            lbl3.Text = "Connected"       
        Else
            lbl3.Text = "Not Connected"   
        End If
       
        If Successful Then
            astream.Initialize(socket.InputStream, socket.OutputStream,"astream")
        End If
    Catch
        Log("Error ")
    End Try           
End Sub
Sub astream_NewData (Buffer() As Byte)
    Dim msg As String   
    msg = BytesToString(Buffer, 0, Buffer.Length, "UTF8")
    Log(msg) 
End Sub
Sub btn1_MouseClicked (EventData As MouseEvent)   
    Try       
        socket.Initialize("Socket")
        socket.Connect(txt1.Text,6565,10000)
    Catch
        Log("Waiting to server")
    End Try   
End Sub
Sub btn2_MouseClicked (EventData As MouseEvent)
    astream.Write(msg1.Text.GetBytes("utf8"))
    msg1.Text = ""
End Sub 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		