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

Клиент-серверное приложение - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Не понимаю результат операции деления http://www.cyberforum.ru/android-dev/thread1110978.html
В конструкторе выполняется следующий код display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); width = display.getWidth(); height = display.getHeight(); Scale_X= width/720; Scale_Y=height/1280; В режиме отладки (Android 2.3.6) построчно выполняю код
Android Подключение к базе данных, кторая хранится в памяти устройста Добрый день! Есть база данных sqlite, которая лежит в sdcard. Подключаюсь к базе следующим образом: String dbfile = sdcard.getAbsolutePath() + File.separator+ "database.sql"; database = SQLiteDatabase.openDatabase(dbfile, null, SQLiteDatabase.OPEN_READONLY); Данных метод работает только на андроид 4.2+. Это судя по отзывам пользователей. Есть еще метод, который уже работает на всех... http://www.cyberforum.ru/android-dev/thread1110952.html
Android Кастомный EditText
КАК сделать вот такой EditText? куда копать ?
SDK vkontakte. Как отловить ответ от vk? Android
Всем привет! Понимаю что тем много, гугл то же дает много нформации, так же много информации на сайте vk.com, но проблема прежде всего с пониманием, по этому прошу помощи у тех кто сталкивался. Я покажу пример кода: WebView api = (WebView)findViewById(R.id.webView1); api.clearCache(true); api.setWebViewClient(new VkontakteWebViewClient()); CookieSyncManager.createInstance(this); ...
Android Отметить все http://www.cyberforum.ru/android-dev/thread1110667.html
Здоровенько! вообщеем есть список.. В каждом элементе чекбокс. и есть еще один чекбокс который должен типа выделить всё... низнай ваще чо делать. Подскажите.. пытался получить все чекбоксы из списка вот так checkBoxAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton,...
Android GridView: выравнивание колонок по центру Код MainActivity.java: public class MainActivity extends Activity { String data = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"}; GridView gridView1; ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { подробнее

Показать сообщение отдельно
андрейка12
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 9

Клиент-серверное приложение - Android

04.03.2014, 17:38. Просмотров 2200. Ответов 5
Метки (Все метки)

Всем привет,

Пытаюсь написать клиент-серверное приложение для android. Логика следующая: android устройство подключается к серверу, пишем сообщения и отправляем. Сервер просто печатает.

Проблема: запускаю клиент и вылетает при подключении.

Сам компьютер подключён к wi-fi роутеру. Такое чувство, что пытаюсь подключится к неправильному 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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
public class Server extends Thread
{
    // Create the server socket channel
    protected ServerSocketChannel server;
    protected java.nio.channels.Selector selector;
 
    
    public Server()
    {
        try
        {
            server = ServerSocketChannel.open();
            // nonblocking I/O
            server.configureBlocking(false);
            server.socket().bind(new java.net.InetSocketAddress("192.168.0.28",5000));
            selector = java.nio.channels.Selector.open();
            // Recording server to selector (type OP_ACCEPT)
            server.register(selector,SelectionKey.OP_ACCEPT);
            server.register(selector,SelectionKey.OP_ACCEPT);
            System.out.println(server.socket().getInetAddress().getHostAddress());
        }
        catch (IOException e)
        {
            fail(e, "Could not start server.");
        }
        System.out.println("Server is running . . .");
        this.start();
    }
    
    
    public static void fail(Exception e, String str)
    {
        System.out.println(str + "." + e);
    }
    
    public void run()
    {
        try
        {
            while (true)
            {
                // Waiting for events
                selector.select();
                // Get keys
                Set keys = selector.selectedKeys();
                Iterator i = keys.iterator();
 
                 // For each keys...
                while(i.hasNext()) 
                {
                    SelectionKey key = (SelectionKey) i.next();
                    // Remove the current key
                    i.remove();
                    // if isAccetable = true
                    // then a client required a connection
                    if (key.isAcceptable()) 
                    {
                          // get client socket channel
                          SocketChannel client = server.accept();
                          // Non Blocking I/O
                          client.configureBlocking(false);
                          // recording to the selector (reading)
                          client.register(selector, SelectionKey.OP_READ);
                          Connection con = new Connection(client.socket());
                    }
                }
            }
        }
        catch (IOException e)
        {
            fail(e, "Not listening");
        }
    }
    
    
    public static void main(String args[])
    {
        new Server();
    }
}
 
class Connection extends Thread 
{
    /* Declare the variables */
    protected Socket clientSocket;
    protected ObjectInputStream fromClient;
    protected ObjectOutputStream toClient;
    
    
    public Connection(Socket client)
    {
        clientSocket = client;
        try
        {
            fromClient = new ObjectInputStream(clientSocket.getInputStream()); //
            toClient = new ObjectOutputStream(clientSocket.getOutputStream()); //
        }
        catch (IOException e)
        {
            try
            {
                clientSocket.close();
            }
            catch (IOException exeption)
            {
                System.err.println("Unable to set up streams " + exeption);
                return;
            }
        }
        /* Start the thread */
        this.start();
    }
    
    public void run()
    {
        String message;
        try
        {
            while (true)
            {
                message = fromClient.readLine();
                /* Завершить соединение, когда Bye вводится как login */
                System.out.println(clientSocket.getInetAddress().getHostName()+ ": " + message);
 
            }
        } 
        catch (IOException e)
        {
            System.out.println(e);
        }
        finally
        {
            try
            {
                clientSocket.close();
            }
            catch (IOException e)
            {
            }
        }
    }
}

Клиент:

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
89
90
91
92
93
public class MainActivity extends Activity implements OnClickListener{
 
    private OutputStream outputStream;
    private EditText message;
    private Button button;
    private Button button_disconect;
    private final String host="192.168.0.28";
    private final int port=5000;
    private byte buffer[] = new byte[1024];
    protected Socket socket;
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);     
        message = (EditText)findViewById(R.id.fieldForMessage);
        button = (Button)findViewById(R.id.button);
        button_disconect = (Button)findViewById(R.id.disconect_button);
        socket = new Socket();
        
        try {
            socket.bind(null);
            socket.connect((new InetSocketAddress(host,port)), 500);
            socket.setKeepAlive(true);
 
            /**
             * Create a byte stream from a JPEG file and pipe it to the output stream
             * of the socket. This data will be retrieved by the server device.
             */
            outputStream = socket.getOutputStream();
            
        }
        
        
        
        catch (FileNotFoundException e) 
        {
            //catch logic
        }
        catch (IOException e)
        {
            //catch logic
        }
        
        
        
        /**
         * Clean up any open sockets when done
         * transferring or if an exception occurred.
         */
    }
 
    @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;
    }
    
    @Override
    public void onClick(View v) {
        switch(v.getId()) {
        case R.id.button:
            String str = message.getText().toString();
            int len = str.length();
            buffer = str.getBytes();
            if (len != 0)
            {
                try 
                {
                    outputStream.write(buffer, 0, len);
                } 
                catch (IOException e)
                {
                }
            
            }
        case R.id.disconect_button:     
            if (socket != null) {
                if (socket.isConnected()) {
                    try {
                            socket.close();
                        } catch (IOException e) {
                            //catch logic
                        }
                    }
                }
        }
    }
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru