| |||||||
Das Thema "java.net.SocketException: Socket is closed" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 18.08.2011
Beiträge: 12
Abgegebene Danke: 4
Erhielt 0 Danke für 0 Beiträge
| )Ich suche schon seit Stunden den Fehler, doch ich komme einfach nicht weiter (Wenn ich mein Wlan einschalte und dann von der Activity zurück möchte, bekomme ich andauern diese Exception: java.net.SocketException: Socket is closed at java.net.DatagramSocket.checkClosedAndBind(Datagra mSocket.java:604) at java.net.DatagramSocket.receive(DatagramSocket.jav a:158) at Android.Steuerung.Heizung.run(Heizung.java:158) at java.lang.Thread.run(Thread.java:1096) Hier mein Code HTML-Code: //wird in der onCreate methdode ausgeführt
//wenn ich im WLAN netz drinnen bin, dann beginne ich Daten zu empfangen
if(mobile.isConnected() == true) {
//Log.d("network", "IST IM WLAN");
sendData(REFRESH);
startSniffing();
}
//starten des Threads;
private void startSniffing(){
if(!tt.isAlive()){
try {
receiveSocket = new DatagramSocket(empf_port);
tt.start();
}
catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//stopen des Threads:
private void stopSniffing(){
if(tt.isAlive()){
tt.stop();
receiveSocket.close();
}
}
//senden der Daten
[LEFT]public void sendData(String data){
try{
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress;
byte[] sendData = new byte[1024];
sendData=data.getBytes();
IPAddress = InetAddress.getByName("192.168.0.255");
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, server_port);
clientSocket.send(sendPacket);
Log.d("udp tutorial", "senden erfolgreich");
clientSocket.close();
}
catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}[/LEFT]
}
//Erhalten der Daten:
public void run() {
// TODO Auto-generated method stub
while(true) {
try {
byte[] buffer = new byte[1024];
DatagramPacket p = new DatagramPacket(buffer, buffer.length);
receiveSocket.receive(p);
byte[] packet = new byte[p.getLength()];
System.arraycopy(p.getData(), 0, packet, 0, packet.length);
text = new String(packet, "UTF8");
Log.d("Udp tutorial","message:" + text);
Log.d("RECEIVE", "ERFOLGREICH");
handler.sendEmptyMessage(0);
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//wenn ich zurück switche rufe ich einfach die stopSniffing und stoppe den Thread
public void onClick(View v) {[/LEFT]
if(v.equals(zuruck)){[/LEFT]
stopSniffing();[/LEFT]
Intent in = new Intent(Heizung.this,AndroidSteuerung.class);[/LEFT]
startActivity(in);[/LEFT]
} Geändert von Canaboca (27.08.2011 um 00:02 Uhr) |
| | |
| | #2 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Also bei dem Code habe ich nicht ganz durchgeblickt, liegt vielleicht auch an der Formatierung. Meine Vermutung: du arbeitest mit einigen Threads und mehreren Sockets. Wenn du zurück willst, dann versucht ein Thread sicher noch Daten zu senden, obwohl das Socket schon geschlossen wurde. Überprüfe einfach mal, ob du wirklich alle Threads anhältst und die Sockets dann auch schließt. Wenn ich schon die eine Schleife sehe: Code: while(true){...}
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| java.net.UnknownHostException | lucaaAUT | Android App Entwicklung | 3 | 09.08.2011 17:00 |
| Fehler: java.net socket exception | nrwpeggy | HTC Desire S Forum | 1 | 02.08.2011 12:37 |
| DroidCam socket error:socket is not connected | germanytwo | Sonstige Apps & Widgets | 10 | 15.07.2011 18:08 |
| JAVA vs .NET | Kaeptn-G. | Smalltalk und Offtopic | 1 | 12.09.2010 16:28 |
| .NET vs Java | maho | Smalltalk und Offtopic | 3 | 12.07.2010 19:12 |