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

Нужно по протоколу tcp-ip отправлять на определенный порт данные - Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.86
joker26rus
Сообщений: n/a
31.07.2013, 20:20     Нужно по протоколу tcp-ip отправлять на определенный порт данные #1
нужно по протоколу tcp-ip отправлять на определенный порт данные.
Чтобы сервер отвечал по этим данным набором своих "ответных" данных.
Как это реализовать на Android.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2013, 20:20     Нужно по протоколу tcp-ip отправлять на определенный порт данные
Посмотрите здесь:

Android TCP клиент под андроид
TCP/IP клиент Android
Android TCP клиент
Android TCP клиент в NDK
Android Как передать данные в определенный инстанс класса?
Передача по TCP Android
Android TCP Socket Client
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MegaSinner
 Аватар для MegaSinner
91 / 91 / 3
Регистрация: 09.04.2010
Сообщений: 746
02.08.2013, 20:49     Нужно по протоколу tcp-ip отправлять на определенный порт данные #2
Коннект:
Java
1
2
3
4
5
6
7
        try{
            sc = new Socket("айпишник", Integer.parseInt("порт"));
            sc.setKeepAlive(true);
            is = sc.getInputStream();
            os = sc.getOutputStream();
            ///System.out.println("Connected!");
        }catch(Exception x)
Чтение:
Java
1
2
3
4
5
6
7
8
while (is.available()==0)
            {
                try{Thread.sleep(50);
                }catch (Exception cc){
                }
            }
            byte[] baray= new byte[1024];
            is.read(baray, 0, is.available());
Запись:
Java
1
os.write("строчка".getBytes());
sc, is и os - объяви пабличные, там, где нужно, и соответственного типа. Удачи.

EDIT: если твой сервер отправляет большие данные, например фотки, то первым делом пусть отправляет её размер в байтам и только затем, дождавшись ответа, пересылает фотку. Зачем так: потому что, есть размер буфера и данные передаются частями... Но байты(комманды) нужно ещё правильно декодировать в UTF-строчки, но это уже другой разговор..
The13
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 3
02.08.2013, 21:13     Нужно по протоколу tcp-ip отправлять на определенный порт данные #3
Спасибо.
MegaSinner
 Аватар для MegaSinner
91 / 91 / 3
Регистрация: 09.04.2010
Сообщений: 746
28.08.2014, 18:44     Нужно по протоколу tcp-ip отправлять на определенный порт данные #4
The13, Pingvinoff, _Night_Scream_, joker26rus.
Небольшой бонус, по существу:
не забываем про:
1) В манифесте должно быть разрешение:
XML
1
<uses-permission android:name="android.permission.INTERNET" />
2) Нельзя ломиться в инет с основного потока - для этого есть AsyncTask, Thread и т.д..
3) Учитывая пункт №2, обновлять UI приходится так же в отдельном потоке, но с "примочками"(handler):


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
private void UpdateUI() {
        final Handler handler = new Handler();
        Runnable runnable = new Runnable() {
            public void run() {
                while (!stop_threads) {
                    try {
                        Thread.sleep(200);//вот это значение меняем под свои нужды
                    }
                    catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    handler.post(new Runnable(){
                        public void run() {
                            if (current_line.length() > 0)
                            {
                            выводим что-то куда-то
                            current_line = "";
 
                            }
 
 
                            }
                        }
                    });
                }
            }
        };
        new Thread(runnable).start();
    }
На очень старых версия ОS могут быть проблемы с запуском нескольких АсинкТасков, в то время, как Thread'ы будут работать перфектно.. Приятного кодинга..
Паблито
29.08.2014, 09:53
  #5

Не по теме:

любитель некропостинга?

MegaSinner
29.08.2014, 10:54
  #6

Не по теме:

Цитата Сообщение от Паблито Посмотреть сообщение
любитель некропостинга?
- Нет.

MegaSinner
29.08.2014, 11:01     Нужно по протоколу tcp-ip отправлять на определенный порт данные
  #7

Не по теме:

неа

Yandex
Объявления
29.08.2014, 11:01     Нужно по протоколу tcp-ip отправлять на определенный порт данные
Ответ Создать тему
Опции темы

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