Şimdi Ara

Android Socket No-ip Adres Sorunu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
1
Favori
186
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Herkese iyi forumlar android java programlama konusunda yeniyim ihtiyacıma uygun basit bir yazılım yazmayı düşündüm yazılım gayet iyi çalışıyor ancak sunucuya uzaktan erişebilmek amacıyla no-ip ddns-a kullanmayı denedim server bilgisayar üzerinde çalışıyor normal ip adresime ve no-ip adresine serverın portu üzerinden ping attığımda sorun yok windows ta bir client yazıp o şekilde denedim onunla da sorunsuz çalıştı ancak android yazılımda no-ip adresindeki ip adresimi yanlış çözüyor ve bağlanamıyor direk olarak denediğimde sorun yok modemden nat ve port forwading ayarlarını yapmıştım zaten orada da bir hata olduğunu düşünmüyorum kaynak kodlar aşağıdaki şekilde yardımcı olursanız çok memnun olurum

    Mainactiviy:
    package com.mercanelectronics.recyclelithv1;

    import android.os.AsyncTask;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.text.method.ScrollingMovementMethod;

    public class MainActivity extends AppCompatActivity {
    private Button connectButton;
    private TextView msg;

    TcpClient mTcpClient;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    connectButton = (Button) findViewById(R.id.baglan);
    msg = (TextView) findViewById(R.id.msg_text);

    connectButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    if (mTcpClient != null) {
    mTcpClient.stopClient();
    mTcpClient = null;
    connectButton.setText("Sunucuya Bağlan");
    } else {
    new ConnectTask().execute("");
    connectButton.setText("Bağlantıyı Kes");
    }
    }
    });

    msg.setMovementMethod(new ScrollingMovementMethod());
    }

    public class ConnectTask extends AsyncTask<String, String, TcpClient> {

    @Override
    protected TcpClient doInBackground(String... message) {

    //we create a TCPClient object
    mTcpClient = new TcpClient(new TcpClient.OnMessageReceived() {
    @Override
    //here the messageReceived method is implemented
    public void messageReceived(String message) {
    //this method calls the onProgressUpdate
    publishProgress(message);
    }
    });
    mTcpClient.run();
    return null;
    }

    @Override
    protected void onProgressUpdate(String... values) {
    super.onProgressUpdate(values);
    //response received from server
    Log.d("test", "response " + values[0]);
    msg.setText(values[0].replaceAll("\\\\n", "\\\n"));
    //process server response here....

    }
    }
    }


    TCPClient:
    package com.mercanelectronics.recyclelithv1;

    import android.util.Log;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.net.InetAddress;
    import java.net.Socket;
    import java.net.URL;

    public class TcpClient {

    public static final String TAG = TcpClient.class.getSimpleName();
    public static final String SERVER_IP = "109.228.227.38"; //server IP address
    public static final int SERVER_PORT = 4305;
    // message to send to the server
    private String mServerMessage;
    // sends message received notifications
    private OnMessageReceived mMessageListener = null;
    // while this is true, the server will continue running
    private boolean mRun = false;
    // used to send messages
    private PrintWriter mBufferOut;
    // used to read messages from the server
    private BufferedReader mBufferIn;

    /**
    * Constructor of the class. OnMessagedReceived listens for the messages received from server
    */
    public TcpClient(OnMessageReceived listener) {
    mMessageListener = listener;
    }

    /**
    * Sends the message entered by client to the server
    *
    * @param message text entered by client
    */
    public void sendMessage(final String message) {
    Runnable runnable = new Runnable() {
    @Override
    public void run() {
    if (mBufferOut != null) {
    Log.d(TAG, "Sending: " + message);
    mBufferOut.println(message);
    mBufferOut.flush();
    }
    }
    };
    Thread thread = new Thread(runnable);
    thread.start();
    }

    /**
    * Close the connection and release the members
    */
    public void stopClient() {

    mRun = false;

    if (mBufferOut != null) {
    mBufferOut.flush();
    mBufferOut.close();
    }

    mMessageListener = null;
    mBufferIn = null;
    mBufferOut = null;
    mServerMessage = null;
    }

    public void run() {

    mRun = true;

    try {
    //here you must put your computer's IP address.
    InetAddress serverAddr = InetAddress.getByName(SERVER_IP);

    Log.d("TCP Client", serverAddr.getHostAddress());

    //create a socket to make the connection with the server
    Socket socket = new Socket(serverAddr, SERVER_PORT);

    try {

    //sends the message to the server
    mBufferOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);

    //receives the message which the server sends back
    mBufferIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));


    //in this while the client listens for the messages sent by the server
    while (mRun) {

    mServerMessage = mBufferIn.readLine();

    if (mServerMessage != null && mMessageListener != null) {
    //call the method messageReceived from MyActivity class
    mMessageListener.messageReceived(mServerMessage);
    }

    }

    Log.d("RESPONSE FROM SERVER", "S: Received Message: '" + mServerMessage + "'");

    } catch (Exception e) {
    Log.e("TCP", "S: Error", e);
    } finally {
    //the socket must be closed. It is not possible to reconnect to this socket
    // after it is closed, which means a new socket instance has to be created.
    socket.close();
    }

    } catch (Exception e) {
    Log.e("TCP", "C: Error", e);
    }

    }

    //Declare the interface. The method messageReceived(String message) will must be implemented in the Activity
    //class at on AsyncTask doInBackground
    public interface OnMessageReceived {
    public void messageReceived(String message);
    }
    }







  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.