Witam, połączyłem androida w Android Studio oraz Visual 2015 program w C# socketami, w javie ekspertem nie jestem,
dlatego chciałbym zapytać o radę jak wysyłać płynnie wiadomości. Użyć thread? runnable?coś innego? jakieś ansynchroniczne?
Aktualnie program łączy się, mogę wysyłać robiąc kolejkę, gdy już dam .close() to dopiero wiadomości dochodzą.
Proszę o pomoc
Pozdrawiam.
package com.example.root.probakomunikatora;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Xml;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.*;
import java.io.Console;
public class MainActivity extends AppCompatActivity {
public EditText editTextMessage;
public Button buttonConnect;
public Button buttonSend;
public Button buttonDisconnect;
public Socket client;
public DataOutputStream outToServer;
public BufferedReader inFromUser;
public TextView opis;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextMessage = (EditText)findViewById(R.id.editText_Message);
buttonConnect = (Button)findViewById(R.id.button_Connect);
buttonSend = (Button)findViewById(R.id.button_Send);
buttonDisconnect = (Button)findViewById(R.id.button_Disconnect);
opis = (TextView)findViewById(R.id.textView_Controler);
editTextMessage.setEnabled(false);
buttonConnect.setEnabled(true);
buttonSend.setEnabled(false);
buttonDisconnect.setEnabled(false);
}
Main activity, mam buttona Connect, Disconnect, Send, Edit tekst Meesage oraz TextView opis:
public void Connect(View view)
{
try{
client = new Socket("192.168.1.1",13000);
opis.setText("Status: Connected");
editTextMessage.setEnabled(true);
buttonConnect.setEnabled(false);
buttonSend.setEnabled(true);
buttonDisconnect.setEnabled(true);
outToServer = new DataOutputStream(client.getOutputStream());
inFromUser = new BufferedReader(new InputStreamReader(System.in));
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
}
public void Send(View view)
{
String sentence = editTextMessage.getText().toString();
try {
outToServer.writeBytes(sentence);
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
}
public void Disconnect(View view)
{
try {
client.close();
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
}
}