Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
DDA
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 29
#1

Клиент -android, сервер -java app - Android

25.11.2013, 15:00. Просмотров 1835. Ответов 7
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста! Есть Клиент под андроид и сервер на java на pc - когда запускаешь с эмулятора - все работает - сообщения передаются. Когда запускаешь приложение на android устройстве - при нажатии на кнопку отправить всё вылетает...
Очень нужна ваша помощь...
Код клиента
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package com.example.client;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import com.example.client.R;
import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
private Socket client;
private PrintWriter printwriter;
private EditText textField;
private Button button;
private String messsage;
String ip="192.168.0.80";
int port=80;
 
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
 
setContentView(R.layout.activity_main);
textField = (EditText) findViewById(R.id.textout); 
button = (Button) findViewById(R.id.send);
 
button.setOnClickListener(new View.OnClickListener() {
 
public void onClick(View v) {
 
messsage = textField.getText().toString(); 
Socket client =null;
textField.setText("");      
DataOutputStream dataOutputStream= null;
DataInputStream dataInputStream = null;
 
try {
 
 client = new Socket("192.168.0.80", 80);
 client.setSoTimeout(100);
 dataOutputStream = new DataOutputStream(client.getOutputStream());
 dataInputStream = new DataInputStream(client.getInputStream());
 dataOutputStream.writeUTF(messsage);
 /*
 printwriter = new PrintWriter(client.getOutputStream(),true);
 printwriter.write(messsage);  
 
 printwriter.close();
 client.close();   
*/
} catch (UnknownHostException e) {
 e.printStackTrace();
} catch (IOException e) {
    System.out.println("Got an IOException: " + e.getMessage());
}
}
});
}
}
xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
<TextView
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 
 />
<EditText
 android:id="@+id/textout"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 />
<Button
 android:id="@+id/send"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Send"
 />
<TextView
 android:id="@+id/textin"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 />
</LinearLayout>
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
25.11.2013, 16:59     Клиент -android, сервер -java app #2
Цитата Сообщение от DDA Посмотреть сообщение
new Socket("192.168.0.80", 80)
а вы уверены что он может обратиться по этому адресу с телефона?
если сервер стоит на локальном компьютере, то вам бы статический IP или же пытаться решить как то с помощью костылей.
DDA
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 29
25.11.2013, 17:07  [ТС]     Клиент -android, сервер -java app #3
Цитата Сообщение от NiRamz Посмотреть сообщение
а вы уверены что он может обратиться по этому адресу с телефона?
если сервер стоит на локальном компьютере, то вам бы статический IP или же пытаться решить как то с помощью костылей.
А что значит костыли?
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
25.11.2013, 17:15     Клиент -android, сервер -java app #4
Цитата Сообщение от DDA Посмотреть сообщение
А что значит костыли?

Не по теме:

не изведанный доселе способ и танцы с бубном )

DDA
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 29
25.11.2013, 17:21  [ТС]     Клиент -android, сервер -java app #5
Цитата Сообщение от NiRamz Посмотреть сообщение

Не по теме:

не изведанный доселе способ и танцы с бубном )

хех) пошёл искать бубен.))

Добавлено через 1 минуту
Цитата Сообщение от NiRamz Посмотреть сообщение

Не по теме:

не изведанный доселе способ и танцы с бубном )

Вычитал что в новых версиях андроид нужно запускать соединение в новом потоке... подскажите, как это возможно...? испробывал всё...
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
25.11.2013, 17:21     Клиент -android, сервер -java app #6
AsynckTask - почитайте про него
DDA
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 29
25.11.2013, 17:23  [ТС]     Клиент -android, сервер -java app #7
Цитата Сообщение от NiRamz Посмотреть сообщение
AsynckTask - почитайте про него
спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2013, 23:32     Клиент -android, сервер -java app
Еще ссылки по теме:

Android Клиент-Сервер подключение к серверу в сети Wi-Fi Android
Android Клиент-сервер приложение для android
Android Как сделать доступ к MainActivity из класса android.app.Instrumentation?
Android Gradle build finished with 4 error(s). Android Studio. My First App
Клиент-сервер, Django(Python), MySQL и Java (выбор) Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
verylazy
Заблокирован
25.11.2013, 23:32     Клиент -android, сервер -java app #8
я бы остановил firewall на сервере и запустил снова клиента на устройстве
если запустится - открыть 80-й порт
Yandex
Объявления
25.11.2013, 23:32     Клиент -android, сервер -java app
Ответ Создать тему
Опции темы

Текущее время: 18:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru