У меня есть проверенный сервер на ESP8266 с обратной связью и клиентским приложением tcp, которое не отправляет сообщения.Я также проверил его на сервере, который сообщает вам, есть ли кто-то подключенный, и говорит, что он подключается.
«Чат» textView
показывает сообщение, когда я нажимаю «отправить».
Например: Client: message
, но не отправляет его на сервер для повторной отправки..
Что я должен изменить для этого, чтобы отправлять и получать сообщения?
Клиент
package com.example.tinemasilo.researchgate_sockettut;
import android.app.Activity;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;
public class MainActivity extends Activity
{
static EditText serverIp,smessage;
static TextView chat;
static Button connectPhones,disconnectPhones,sent;
static String serverIpAddress = "",msg = "",str;
Handler handler = new Handler();
//static InetAddress serverAddr;
static Socket socket;
static DataOutputStream os;
//static DataInputStream in;
static BufferedReader in;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chat = (TextView) findViewById(R.id.chat);
serverIp = (EditText) findViewById(R.id.server_ip);
smessage = (EditText) findViewById(R.id.smessage);
sent = (Button) findViewById(R.id.sent_button);
connectPhones = (Button) findViewById(R.id.connectPhones);
disconnectPhones = (Button) findViewById(R.id.disconnectPhones);
connectPhones.setEnabled(true);
connectPhones.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
connectPhones.setEnabled(false);
disconnectPhones.setEnabled(true);
serverIpAddress = serverIp.getText().toString();
//try
//{
// InetAddress.getByName(serverIpAddress);
// serverAddr.getByName(serverIpAddress);
// socket = new Socket(serverAddr, 10000);
//}
// catch (IOException e)
//{
//}
if (!serverIpAddress.equals(""))
{
Thread clientThread = new Thread(new ClientThread());
clientThread.start();
}
}
});
sent.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Thread sentThread = new Thread(new sentMessage());
sentThread.start();
}
});
disconnectPhones.setEnabled(false);
disconnectPhones.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
connectPhones.setEnabled(true);
disconnectPhones.setEnabled(false);
try
{
socket.close();
}
catch (IOException e)
{
}
}
});
}
public class ClientThread implements Runnable
{
public void run()
{
try
{
InetAddress serverAddr = InetAddress.getByName(serverIpAddress);
//serverAddr.getByName(serverIpAddress);
socket = new Socket(serverAddr, 502);
while(true)
{
//InetAddress serverAddr = InetAddress.getByName(serverIpAddress);
//serverAddr.getByName(serverIpAddress);
//socket = new Socket(serverAddr, 10000);
//in = new DataInputStream(socket.getInputStream());
in = new BufferedReader( new InputStreamReader(socket.getInputStream()));
String line = null;
while ((line = in.readLine()) != null)
{
msg = msg + "Server : " + line + "\n";
handler.post(new Runnable()
{
@Override
public void run()
{
chat.setText(msg);
}
});
}
in.close();
Thread.sleep(100);
}
}
catch (Exception e)
{
}
}
}
class sentMessage implements Runnable
{
@Override
public void run()
{
try
{
InetAddress serverAddr = InetAddress.getByName(serverIpAddress);
//serverAddr.getByName(serverIpAddress);
socket = new Socket(serverAddr, 502);
os = new DataOutputStream(socket.getOutputStream());
str = smessage.getText().toString();
str = str + "\n";
msg = msg + "Client : " + str;
handler.post(new Runnable()
{
@Override
public void run()
{
chat.setText(msg);
}
});
os.writeBytes(str);
os.flush();
os.close();
}
catch(IOException e)
{
}
}
}
}