Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/74: Рейтинг темы: голосов - 74, средняя оценка - 4.89
k-mezon
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 4
#1

client/server для android phone <-> pc на java

08.05.2012, 12:48. Просмотров 13313. Ответов 10
Метки нет (Все метки)

Написал клиент/сервер на java для передачи сообщений из телефона в комп. Клиент на телефон samsung galaxy fit gt-s5670 с Android 2.2.1, сервер на компютере. Передача данный осуществляется с помощью soket -ов. В симуляторе в Eclipse работает а из телефона нет. сервер ждет а полученных данных нет с клиента.Порт в обоих частях указан один и тот же. В чем может быть проблема. Может маска подсети в ip ....????ip телефона и ip компа из разных сетей.Вот листинги клиента и сервера

клиент
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package com.pcToDroid;
 
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
import android.app.Activity;
import android.os.Bundle;
 
public class ClientActivity extends Activity 
{
    EditText textOut;
    TextView textIn;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        textOut = (EditText)findViewById(R.id.textout);
        Button buttonSend = (Button)findViewById(R.id.send);
        textIn = (TextView)findViewById(R.id.textin);
        buttonSend.setOnClickListener(buttonSendOnClickListener);
     }
 
    Button.OnClickListener buttonSendOnClickListener = new Button.OnClickListener()
    {
   //@Override
    public void onClick(View arg0)
    {
     // TODO Auto-generated method stub
     Socket socket = null;
     DataOutputStream dataOutputStream = null;
     DataInputStream dataInputStream = null;
 
     try {
      socket = new Socket("46.241.185.36", 8888);
      dataOutputStream = new DataOutputStream(socket.getOutputStream());
      dataInputStream = new DataInputStream(socket.getInputStream());
      dataOutputStream.writeUTF(textOut.getText().toString());
      textIn.setText(dataInputStream.readUTF());
     } catch (UnknownHostException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
     finally{
      if (socket != null){
       try {
        socket.close();
       } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
      }
 
      if (dataOutputStream != null){
       try {
        dataOutputStream.close();
       } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
      }
 
      if (dataInputStream != null){
       try {
        dataInputStream.close();
       } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
      }
     }
    }};
    }
сервер
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
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
 
 
public class MyServer {
 
 public static void main(String[] args){
  ServerSocket serverSocket = null;
  Socket socket = null;
  DataInputStream dataInputStream = null;
  DataOutputStream dataOutputStream = null;
  
  try {
   serverSocket = new ServerSocket(8888);
   System.out.println("Listening :8888");
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  while(true){
   try {
   System.out.println("mtav ... !");
    socket = serverSocket.accept();
    System.out.println("socket" + socket);
    dataInputStream = new DataInputStream(socket.getInputStream());
    dataOutputStream = new DataOutputStream(socket.getOutputStream());
    System.out.println("ip: " + socket.getInetAddress());
    System.out.println("message: " + dataInputStream.readUTF());
    dataOutputStream.writeUTF("Hello!");
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   finally{
    if( socket!= null){
     try {
      socket.close();
     } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
    
    if( dataInputStream!= null){
     try {
      dataInputStream.close();
     } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
    
    if( dataOutputStream!= null){
     try {
      dataOutputStream.close();
     } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
   }
  }
 }
}
[/S]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2012, 12:48
Ответы с готовыми решениями:

Socket Android Client and Java Socket Server
Доброго времени суток.Пытаюсь сделать простое клиент-серверное приложение....

Android client <-Wi FI-> PC server
Всем привет. Очень хочу реализовать такую штуку. Значит надо отправлять хотяб...

Android, client-server
Здравствуйте, раньше писал, что делаю приложение на диплом, что-то похожие на...

Client(android) - Server (PC) - Delphi
Здравствуйте. Подскажите как можно реализовать Client(android) - Server (PC) -...

HTTP Client для Android
Доброго времени суток друзья. Столкнулся с такой проблемой. Нужно написать...

10
flashok
87 / 89 / 1
Регистрация: 14.02.2009
Сообщений: 293
08.05.2012, 13:25 #2
тема довольно таки интересная
а с помощьючего телефон смотрит в интернет wi-fi или сам ???

впринципе от Google есть сервис
вот пример http://habrahabr.ru/post/116106/
с помощью него достаточно удобно работать с телефоном
0
k-mezon
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 4
08.05.2012, 14:48  [ТС] #3
Tелефон в сеть смотрит через 3g из самого себя
0
silentnuke
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
08.05.2012, 21:12 #4
Цитата Сообщение от flashok Посмотреть сообщение
тема довольно таки интересная
а с помощьючего телефон смотрит в интернет wi-fi или сам ???

впринципе от Google есть сервис
вот пример http://habrahabr.ru/post/116106/
с помощью него достаточно удобно работать с телефоном
c2dm не панацея.
если нужен обмен в реальном времени, сокеты, куда лучше будут. ибо с2dm при определенных фазах звезд, может прислать вам сообщение и через сутки.

Добавлено через 1 минуту
Цитата Сообщение от k-mezon Посмотреть сообщение
Tелефон в сеть смотрит через 3g из самого себя
вы уверены, что у вас как говорится "выделеный айпишник" на пк (сервере)?

Добавлено через 17 минут
видимо у вас не выделенный ip, или если таки выделенный, то юзается роутер и не проброшены порты.
ибо по коду все нормально, затестил на своей.машине и девайсах, все нормально подключаются и сообщения доходят.
1
k-mezon
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 4
08.05.2012, 23:12  [ТС] #5
Заработало. Так и не понял в чем было конкретно проблема... Bидимо в bin папке старая .аpk не обновлялся. IP у меня динамическая, но для теста кода этого хватит думаю, потом напишу скрипт на php и залью на хостинг.Этот скрипт должен запросить ip компа на котором стоит сервер и сохранить в файле хостингa, а клиент возмет этот ip уже из файла хостинга. Какие советы и возражения ?

Добавлено через 4 минуты
Роутера нет. Инет у меня через 3g модем флешкой. Про портов не совсем понял что значит порты не проброшены ...

Добавлено через 1 минуту
Цитата Сообщение от silentnuke Посмотреть сообщение
то юзается роутер и не проброшены порты.
Роутера нет. Инет у меня через 3g модем флешкой. Про портов не совсем понял что значит порты не проброшены ...
0
hellslade
4 / 4 / 0
Регистрация: 06.04.2012
Сообщений: 20
12.05.2012, 07:54 #6
Цитата Сообщение от k-mezon Посмотреть сообщение
Этот скрипт должен запросить ip компа на котором стоит сервер и сохранить в файле хостингa, а клиент возмет этот ip уже из файла хостинга. Какие советы и возражения ?
Попробуйте использовать dyndns.org и php скрипт не придется писать
1
swoi2003
0 / 0 / 0
Регистрация: 22.06.2011
Сообщений: 16
13.05.2012, 23:39 #7
k-mezon, с вами можно связаться по icq ? у меня именно такая же проблема.

мне нужно отсылать с клиента 3 float переменные каждый 100 мс.

спасибо заранее!!!!!!!!!!
0
Supersancho3000
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 3
20.06.2012, 21:52 #8
k-mezon, не мог бы ты выложить в архиве полный проект, вместе с main.xml, манифестом и так далее. Спасибо
0
swoi2003
0 / 0 / 0
Регистрация: 22.06.2011
Сообщений: 16
21.06.2012, 17:08 #9
Привет а в чем конкретно возникают проблемы ? что именно у вас не получаеться ?

Добавлено через 4 часа 7 минут
у меня всё работает нормально..
0
Supersancho3000
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 3
21.06.2012, 23:49 #10
swoi2003, вроде заработало уже
0
Maksim_m
0 / 0 / 0
Регистрация: 29.03.2016
12.09.2012, 14:52 #11
НЕ мог бы ты выложить исходник. буду благодарен.
0
12.09.2012, 14:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2012, 14:52

Можно ли написать веб сервер на Java для клиента на Android, имея под рукой только телефон на Android?
Уважаемые гуру программирования, если можно, пожалуйста, напишите поподробнее-...

Android vs Windows Phone 7
Хотелось бы знать мнение форумчан, что и почему вы выбираете в качестве...

Java для Android
Добрый день ! Учу андроид примерно 4 месяца, сделал пару игр (в основе лежит...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru