Ошибка при создании сокета
Ошибка при создании сокета
Привет! Вот код MainActivity:
[syntax=java]package com.example.lab1;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
Button Start;
EditText Text;
Socket socket;
public static String Serv_Addr="localhost";
public static int PORT=31007;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Start= (Button) findViewById(R.id.StartButton);
Text= (EditText) findViewById(R.id.EText1);
OnClickListener ocl= new OnClickListener(){
@Override
public void onClick(View v) {
Thread ct=new Thread(doInThread);
//Thread ct1=new Thread
ct.start();
}
};
Start.setOnClickListener(ocl);
}
private Runnable doInThread = new Runnable() {
public void run() {
try{
InetAddress inetAddress = InetAddress.getByName(Serv_Addr);
Log.d("CLIENT",inetAddress.toString());
socket=new Socket(inetAddress,PORT);
Log.d("CLIENT",socket.toString());
}
catch(IOException e){
System.err.println("Socket creating failed");
}
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}[/syntax]
Проблема в том, что при создании сокета (по нажатию на Start) вылетает экспешн. Я дописал в AndroidManifest.xml [syntax=java]<uses-permission android:name="android.permission.INTERNET" />[/syntax], но не помогло. Подскажите в чем тут дело? Спасибо!
[syntax=java]package com.example.lab1;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
Button Start;
EditText Text;
Socket socket;
public static String Serv_Addr="localhost";
public static int PORT=31007;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Start= (Button) findViewById(R.id.StartButton);
Text= (EditText) findViewById(R.id.EText1);
OnClickListener ocl= new OnClickListener(){
@Override
public void onClick(View v) {
Thread ct=new Thread(doInThread);
//Thread ct1=new Thread
ct.start();
}
};
Start.setOnClickListener(ocl);
}
private Runnable doInThread = new Runnable() {
public void run() {
try{
InetAddress inetAddress = InetAddress.getByName(Serv_Addr);
Log.d("CLIENT",inetAddress.toString());
socket=new Socket(inetAddress,PORT);
Log.d("CLIENT",socket.toString());
}
catch(IOException e){
System.err.println("Socket creating failed");
}
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}[/syntax]
Проблема в том, что при создании сокета (по нажатию на Start) вылетает экспешн. Я дописал в AndroidManifest.xml [syntax=java]<uses-permission android:name="android.permission.INTERNET" />[/syntax], но не помогло. Подскажите в чем тут дело? Спасибо!
Re: Ошибка при создании сокета
Сокеты в Андроиде))) Что хоть за ошибка? А то в праздничные дни у меня куда то пропал всевидящий дар...
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Ошибка при создании сокета
А что, это что-то плохое?rezak90 писал(а):Сокеты в Андроиде)))
Я не знаю, что за ошибка. В логкат мне вот че выплевывает:rezak90 писал(а):Что хоть за ошибка?
05-05 12:59:45.342: D/CLIENT(490): localhost/127.0.0.1
05-05 12:59:45.443: W/System.err(490): Socket creating failed
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Ошибка при создании сокета
А через что, к примеру, можно держать соединение в андроиде?Сокеты в Андроиде)))
P.S. это не стектрейс, это какой-то огрызок.
Re: Ошибка при создании сокета
Через сокеты, просто редко встречаю реализацию сокетов на Андроиде. И из-за этого складывается мнение что можно обойтись без них...А через что, к примеру, можно держать соединение в андроиде?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Ошибка при создании сокета
Не понял, у меня для клиента больше ничего нет. Может нужно выложить реализацию сервера?no-- писал(а): P.S. это не стектрейс, это какой-то огрызок.
Re: Ошибка при создании сокета
Забыл сказать, что сервер у меня на компе хранится.
Re: Ошибка при создании сокета
Проблема решилась. Ошибка была в том, что пытался установить соединение с сокетом андроид девайсе. И участок кода [syntax="Java"]InetAddress inetAddress = InetAddress.getByName(Serv_Addr);
Log.d("CLIENT",inetAddress.toString());
socket=new Socket(inetAddress,PORT);
Log.d("CLIENT",socket.toString());[/Syntax] заменил на [syntax=java] InetSocketAddress inetAddress = new InetSocketAddress("192.168.12.1", 31007);
Log.d("CLIENT",inetAddress.toString());
socket = new Socket(inetAddress.getAddress(), 31007);
Log.d("CLIENT",socket.toString());[/syntax]
Всем спасибо за участие!
Log.d("CLIENT",inetAddress.toString());
socket=new Socket(inetAddress,PORT);
Log.d("CLIENT",socket.toString());[/Syntax] заменил на [syntax=java] InetSocketAddress inetAddress = new InetSocketAddress("192.168.12.1", 31007);
Log.d("CLIENT",inetAddress.toString());
socket = new Socket(inetAddress.getAddress(), 31007);
Log.d("CLIENT",socket.toString());[/syntax]
Всем спасибо за участие!
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Ошибка при создании сокета
Ну это неполный лог ошибки. Это лишь её начало. Там всегда выбрасывает по 30 строк.
