kurze frage zum Socket bzw TCP verbindung

M

mitch_HD2

Fortgeschrittenes Mitglied
1
Habe folgenden Code.. hab ich irgendwo hier aus dem Forum
startet alles schön und gut..

dann hab ich noch ein Server unter Visual Basic gemacht mit Streamreader, und TCPListener.. mit meinem VB Client kann ich auf den Server nachrichten schreiben... klappt...

allerdings nicht mit meiner app..

kann es sein dass die beiden nicht miteinander arbeiten können?

Android
Code:
package com.example.chat;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;

import java.net.*;
import java.io.*;


public class MyChatCientAppActivity extends Activity {
    /** Called when the activity is first created. */
    String ip = "0";
    ChatClient client = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
         
         
         
    }
    
    public void onSendClick(View v)
    {
        EditText nachricht = (EditText) this.findViewById(R.id.EditText01);
        String msg = nachricht.getText().toString();
        client.send(msg);
        
    }
    
    public void onConnectClick(View v)
    {
        EditText AdressEditText = (EditText) this.findViewById(R.id.EditText02);
        ip = AdressEditText.getText().toString();
        int port = 4000;
        client =  new ChatClient(ip, port);
    }
}

class ChatClient
{ 
   private Socket socket              = null;
   private DataInputStream  console   = null;
   private DataOutputStream streamOut = null;

   public ChatClient(String serverName, int serverPort)
   {  System.out.println("Establishing connection. Please wait ...");
      try
      {  socket = new Socket(serverName, serverPort);
         Log.d("DEBUG","Connected: " + socket);
         start();
      }
      catch(UnknownHostException uhe)
      {  Log.d("DEBUG","Host unknown: " + uhe.getMessage());
      }
      catch(IOException ioe)
      {  Log.d("DEBUG","Unexpected exception: " + ioe.getMessage());
      }
      
     
   }
   
   public void start() throws IOException
   {  
      console   = new DataInputStream(System.in);
      streamOut = new DataOutputStream(socket.getOutputStream());
   }
   
   public void stop()
   {  try
      {  if (console   != null)  console.close();
         if (streamOut != null)  streamOut.close();
         if (socket    != null)  socket.close();
      }
      catch(IOException ioe)
      {  System.out.println("Error closing ...");
      }
   }
   
   public void send(String msg)
   {
       try
       {  
          streamOut.writeUTF(msg);
          streamOut.flush();
       }
       catch(IOException ioe)
       {  
           Log.d("DEBUG","Sending error: " + ioe.getMessage());
       }
   }
  
}


VB Code
Imports System.Net.Sockets
Imports System.IO
Imports System.Net



Public Class Form1



'Variablen:
Dim stream As NetworkStream
Dim streamw As StreamWriter
Dim streamr As StreamReader
Dim Server As TcpListener
Dim client As New TcpClient
Dim ipendpoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 4000)

Dim mainthread As Threading.Thread
'______________






Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

mainthread = New Threading.Thread(AddressOf mainserver)
mainthread.Start()

End Sub




Sub mainserver()
Try

Server = New TcpListener(ipendpoint)
Server.Start()

client = Server.AcceptTcpClient

stream = client.GetStream
streamr = New StreamReader(stream)
streamw = New StreamWriter(stream) ' Müsste eigentlich alles Klar sein.

While True

MsgBox(streamr.ReadLine)

End While

Catch
' Hier wieder eine Fehler behandlung und ein neuen Versuch den Server zu starten...
End Try

End Sub





Private Sub Form1__close(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.FormClosing
Server.Stop()
Try
mainthread.Abort()
Catch
End Try
End Sub
End Class
 
Hast du dem Input- und Output Stream auch irgendwo gesagt, dass sie zum Socket gehören?

Entweder bin ich blind oder du hast es nicht mit im Code.
 
streamOut = new DataOutputStream(socket.getOutputStream());

hab ich^^
 

Ähnliche Themen

M
Antworten
2
Aufrufe
628
Mozart40
M
S
Antworten
33
Aufrufe
2.666
Sempervivum
S
A
Antworten
1
Aufrufe
583
swa00
swa00
Zurück
Oben Unten