Я делаю приложение, которое можно использовать для отправки сообщений на живой сервер.Но всякий раз, когда создается новое соединение, сначала отправляется пустое сообщение, которое я не знаю, откуда оно отправляется.И перед каждым сообщением есть странные символы, которые я не знаю, откуда они приходят.
Ниже приведены мой фрагмент кода и изображения
package com.example.suraj.client_phase_2;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
public class MainActivity extends AppCompatActivity {
EditText etIpAddress;
EditText etPortNumber;
Button btnConnect;
EditText etSendMessage;
Button btnSend;
String ipAddress;
int portNumber = 0;
int i =0;
Thread m_objThreadClient;
static Socket clientSocket;
static ObjectOutputStream oos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Fields Initialized
etIpAddress = findViewById(R.id.etIpAddress);
etPortNumber = findViewById(R.id.etPortNumber);
btnConnect = findViewById(R.id.btnConnectDisconnect);
etSendMessage = findViewById(R.id.etMessage);
btnSend = findViewById(R.id.btnSend);
// Disabling send button.
btnSend.setEnabled(false);
// Connection and disconnection is created
try {
btnConnect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (i == 0) {
initialization();
connect();
} else {
disconnect();
}
}
});
}catch (Exception e){e.printStackTrace();}
//Sending messages
try {
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
String message = etSendMessage.getText().toString();
oos = new
ObjectOutputStream(clientSocket.getOutputStream());
oos.writeObject(message);
//showToast(message);
} catch (IOException e) {
e.printStackTrace();
}
}
});
}catch (Exception e){e.printStackTrace();}
}
// Retrieving ipAddress and portNumber
public void initialization(){
try {
ipAddress = etIpAddress.getText().toString();
portNumber = Integer.valueOf(etPortNumber.getText().toString());
// showToast(ipAddress+""+portNumber);
}catch(Exception e){e.printStackTrace();}
}
// Creating Socket connection
public void connect(){
try {
if (ipAddress == "" || portNumber == 0) {
showToast("Please Enter IpAddress and Port Number ");
} else {
socketConnectDisconnect();
btnConnect.setText("Disconnect");
showToast("Connected");
//Toast.makeText(this, "Connected" ,
Toast.LENGTH_SHORT).show();
//Enabling send button
btnSend.setEnabled(true);
etIpAddress.setEnabled(false);
etPortNumber.setEnabled(false);
i = 1;
}
}catch (Exception e){e.printStackTrace();}
}
// Disconnecting Socket connection
private void disconnect() {
try {
socketConnectDisconnect();
btnConnect.setText("Connect");
showToast("Disconnected");
//Toast.makeText(this, "Disconnected" ,
Toast.LENGTH_SHORT).show();
//Disabling send button
btnSend.setEnabled(false);
etIpAddress.setEnabled(true);
etPortNumber.setEnabled(true);
i = 0;
}catch (Exception e){e.printStackTrace();}
}
// establishing socket connection
public void socketConnectDisconnect(){
m_objThreadClient = new Thread(new Runnable() {
@Override
public void run() {
try {
if (i==0) {
clientSocket = new Socket(ipAddress,
portNumber);//127.0.0.1
}else{
oos.writeObject("Disconnected");
oos.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
});
m_objThreadClient.start();
}
public void showToast(String text){
Toast.makeText(this,text, Toast.LENGTH_SHORT).show();
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="35dp"
android:layout_marginTop="106dp"
android:text="IP Address"
android:textSize="15sp"
android:textStyle="bold" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/textView"
android:layout_alignParentTop="true"
android:layout_marginStart="-4dp"
android:layout_marginTop="197dp"
android:fontFamily="sans-serif"
android:text="Port Number"
android:textSize="15sp"
android:textStyle="bold" />
<EditText
android:id="@+id/etIpAddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="89dp"
android:layout_marginEnd="23dp"
android:ems="10"
android:hint="IP address"
android:inputType="text" />
<EditText
android:id="@+id/etPortNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/etIpAddress"
android:layout_alignParentTop="true"
android:layout_marginStart="0dp"
android:layout_marginTop="180dp"
android:ems="10"
android:hint="Port number"
android:inputType="text" />
<Button
android:id="@+id/btnConnectDisconnect"
android:layout_width="143dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="263dp"
android:text="Connect" />
<EditText
android:id="@+id/etMessage"
android:layout_width="232dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="22dp"
android:layout_marginBottom="11dp"
android:ems="10"
android:hint="Start Typing........"
android:inputType="text" />
<Button
android:id="@+id/btnSend"
style="@style/Widget.Support.CoordinatorLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/etMessage"
android:layout_alignParentEnd="true"
android:layout_marginTop="1dp"
android:layout_marginEnd="12dp"
android:text="Send" />
</RelativeLayout>
Вот изображение отправленных сообщений на живой сервер