Socket

  • Antworten:12
Matteo Zmollnig
  • Forum-Beiträge: 51

09.08.2012, 11:44:25 via Website

Habe eine Frage in Bezug auf Socket Verbindungen.
Hab ein Programm, welches eine Verbindung mit dem Server herstellt. Das Funktioniert gut, doch wenn jetzt die Verbindung trennt und ich sie Wiederherstellen will, aber noch keine Verbindung möglich ist, hängt sich das Programm immer auf.
Ich bräuchte also einen Befehl mit dem man nachsehen kann ob eine Verbindung möglich ist oder nicht.
Könnt ihr mir helfen?

Antworten
Matteo Zmollnig
  • Forum-Beiträge: 51

09.08.2012, 11:54:45 via Website

Ich hab ja versucht beim Neu-Verbinden es mit try und catch abzufangen, das funktioniert aber nicht, er hängt sich trotzdem immer auf....

Antworten
Matteo Zmollnig
  • Forum-Beiträge: 51

09.08.2012, 12:37:04 via Website

The application has stopped unexpectedly :)

Antworten
Matteo Zmollnig
  • Forum-Beiträge: 51

09.08.2012, 13:03:10 via Website

08-09 09:02:09.639: D/AndroidRuntime(331): Shutting down VM
08-09 09:02:09.639: W/dalvikvm(331): threadid=1: thread exiting with uncaught exception (group=0x40015560)
08-09 09:02:09.659: E/AndroidRuntime(331): FATAL EXCEPTION: main
08-09 09:02:09.659: E/AndroidRuntime(331): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.timer/com.example.timer.Timer}: java.lang.NullPointerException
08-09 09:02:09.659: E/AndroidRuntime(331): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
08-09 09:02:09.659: E/AndroidRuntime(331): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
08-09 09:02:09.659: E/AndroidRuntime(331): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-09 09:02:09.659: E/AndroidRuntime(331): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
08-09 09:02:09.659: E/AndroidRuntime(331): at android.os.Handler.dispatchMessage(Handler.java:99)
08-09 09:02:09.659: E/AndroidRuntime(331): at android.os.Looper.loop(Looper.java:123)
08-09 09:02:09.659: E/AndroidRuntime(331): at android.app.ActivityThread.main(ActivityThread.java:3683)
08-09 09:02:09.659: E/AndroidRuntime(331): at java.lang.reflect.Method.invokeNative(Native Method)
08-09 09:02:09.659: E/AndroidRuntime(331): at java.lang.reflect.Method.invoke(Method.java:507)
08-09 09:02:09.659: E/AndroidRuntime(331): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-09 09:02:09.659: E/AndroidRuntime(331): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-09 09:02:09.659: E/AndroidRuntime(331): at dalvik.system.NativeStart.main(Native Method)
08-09 09:02:09.659: E/AndroidRuntime(331): Caused by: java.lang.NullPointerException
08-09 09:02:09.659: E/AndroidRuntime(331): at android.app.Activity.findViewById(Activity.java:1647)
08-09 09:02:09.659: E/AndroidRuntime(331): at com.example.timer.Timer.<init>(Timer.java:24)
08-09 09:02:09.659: E/AndroidRuntime(331): at java.lang.Class.newInstanceImpl(Native Method)
08-09 09:02:09.659: E/AndroidRuntime(331): at java.lang.Class.newInstance(Class.java:1409)
08-09 09:02:09.659: E/AndroidRuntime(331): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
08-09 09:02:09.659: E/AndroidRuntime(331): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
08-09 09:02:09.659: E/AndroidRuntime(331): ... 11 more
08-09 09:02:27.509: I/Process(331): Sending signal. PID: 331 SIG: 9

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

09.08.2012, 13:12:26 via Website

108-09 09:02:09.659: E/AndroidRuntime(331): at android.app.Activity.findViewById(Activity.java:1647)
208-09 09:02:09.659: E/AndroidRuntime(331): at com.example.timer.Timer.<init>(Timer.java:24)

Du versuchst einen View zu holen, der im aktuellen Layout nicht existiert. Das hat nichts mit dem Socket zu tun.

— geändert am 09.08.2012, 13:13:06

Matteo Zmollnig

Antworten
Matteo Zmollnig
  • Forum-Beiträge: 51

09.08.2012, 13:14:45 via Website

upps das wars falsche ich schick gleich ein neues

Antworten
Matteo Zmollnig
  • Forum-Beiträge: 51

09.08.2012, 13:17:44 via Website

[2012-08-09 13:15:32 - Timer] ------------------------------
[2012-08-09 13:15:32 - Timer] Android Launch!
[2012-08-09 13:15:32 - Timer] adb is running normally.
[2012-08-09 13:15:32 - Timer] Performing com.example.timer.Timer activity launch
[2012-08-09 13:15:32 - Timer] Automatic Target Mode: launching new emulator with compatible AVD 'txt'
[2012-08-09 13:15:32 - Timer] Launching a new emulator with Virtual Device 'txt'
[2012-08-09 13:15:34 - Timer] ------------------------------
[2012-08-09 13:15:34 - Timer] Android Launch!
[2012-08-09 13:15:34 - Timer] adb is running normally.
[2012-08-09 13:15:34 - Timer] Performing com.example.timer.Timer activity launch
[2012-08-09 13:15:34 - Timer] Automatic Target Mode: launching new emulator with compatible AVD 'txt'
[2012-08-09 13:15:34 - Timer] Launching a new emulator with Virtual Device 'txt'
[2012-08-09 13:15:36 - Emulator] Failed to create Context 0x3005
[2012-08-09 13:15:36 - Emulator] emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
[2012-08-09 13:15:36 - Timer] New emulator found: emulator-5554
[2012-08-09 13:15:36 - Timer] Waiting for HOME ('android.process.acore') to be launched...
[2012-08-09 13:15:40 - Emulator] Failed to create Context 0x3005
[2012-08-09 13:15:40 - Emulator] WARNING: Data partition already in use. Changes will not persist!
[2012-08-09 13:15:40 - Emulator] WARNING: SD Card image already in use: C:\Dokumente und Einstellungen\mzmollnig\.android\avd\txt.avd/sdcard.img
[2012-08-09 13:15:40 - Emulator] WARNING: Cache partition already in use. Changes will not persist!
[2012-08-09 13:15:40 - Emulator] emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
[2012-08-09 13:15:43 - Timer] New emulator found: emulator-5556
[2012-08-09 13:15:43 - Timer] Waiting for HOME ('android.process.acore') to be launched...
[2012-08-09 13:15:48 - Timer] emulator-5556 disconnected! Cancelling 'com.example.timer.Timer activity launch'!
[2012-08-09 13:16:07 - Timer] HOME is up on device 'emulator-5554'
[2012-08-09 13:16:07 - Timer] Uploading Timer.apk onto device 'emulator-5554'
[2012-08-09 13:16:08 - Timer] Installing Timer.apk...
[2012-08-09 13:16:25 - Timer] Success!
[2012-08-09 13:16:25 - Timer] Starting activity com.example.timer.Timer on device emulator-5554
[2012-08-09 13:16:26 - Timer] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.timer/.Timer }

Antworten
Matteo Zmollnig
  • Forum-Beiträge: 51

09.08.2012, 13:18:15 via Website

dazu der Code
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import android.os.Bundle;
import android.os.CountDownTimer;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class Timer extends Activity {
Socket socket, socket1;
byte x=1;
byte y=0;
int z=30000;



@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timer);
try
{
socket = new Socket("10.4.2.22",1500);
}
catch(UnknownHostException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
try
{
socket1 = new Socket("10.4.2.22",1500);
}
catch(UnknownHostException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
prüf();

}


public void prüf()
{
new CountDownTimer(z, 1000) {

//int i=0;
Button button= (Button)findViewById(R.id.button1);
EditText tv= (EditText)findViewById(R.id.tv);
public void onTick(long millisUntilFinished) {
DataOutputStream dataoutputstream = null;
DataInputStream datainputstream = null;
z+=1000;
y=0;
try
{

dataoutputstream = new DataOutputStream(socket.getOutputStream());
dataoutputstream.writeUTF(""+x);
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
try
{

datainputstream = new DataInputStream(socket.getInputStream());
y=Byte.parseByte(datainputstream.readUTF());
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
if(y==0)
{
tv.setText("Keine Server Verbindung");
button.setEnabled(false);
try
{
socket = new Socket("10.4.2.22",1500);
}
catch(UnknownHostException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}

else
{
tv.setText("Server Verbindung hergestellt");
button.setEnabled(true);
}


}

public void onFinish() {
//txt.setText("done!");
this.start();
}
}.start();
}
public void ButtonKlick(View v)
{

DataOutputStream dataoutputstream= null;
EditText txt = (EditText)findViewById(R.id.txt);
try
{

dataoutputstream= new DataOutputStream(socket1.getOutputStream());
dataoutputstream.writeUTF(txt.getText().toString());
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_timer, menu);
return true;
}
}

Antworten
Matteo Zmollnig
  • Forum-Beiträge: 51

09.08.2012, 13:30:02 via Website

Ich weiß nicht was du meinst was mit der View nicht funktionieren sollte.
Es funktioniert alles außer der Wiederaufbau der Verbindung falls die getrennt war.

Antworten