Android Studio ile Socket Programlama Rehberi

Android Studio ile Socket Programlama Rehberi

Socket programlama, ağ üzerinden veri iletimi sağlamak için kullanılan bir tekniktir ve Android uygulamaları geliştirmede önemli bir yer tutar. Bu makalede, Android Studio kullanarak socket programlama yapmanın temel adımlarını inceleyeceğiz.

Socket Nedir?

Socket, bir ağ üzerinde iletişim kurmak için kullanılan bir uç noktadır. İki ana türü bulunmaktadır: TCP ve UDP. TCP, güvenilir veri iletimi sağlarken, UDP daha hızlı ancak daha az güvenilir bir iletim yöntemi sunar. Android uygulamalarında genellikle TCP kullanılır.

Android Studio ile Socket Programlama Adımları

Socket programlamaya başlamak için Android Studio’da yeni bir proje oluşturmalısınız. Proje oluşturma işlemi tamamlandıktan sonra, aşağıdaki adımları takip edebilirsiniz.

1. Gerekli İzinleri Almak

Android uygulamanızın internet erişimi olması gerektiğinden, `AndroidManifest.xml` dosyasına internet izni eklemeniz gerekiyor. Bunun için aşağıdaki satırı dosyanıza ekleyin:

“`xml

“`

2. Socket Oluşturma

Socket oluşturmak için Java dilinde `Socket` sınıfını kullanacağız. Aşağıda basit bir client socket örneği bulunmaktadır:

“`java

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

public class ClientSocket {

private String serverAddress;

private int serverPort;

private Socket socket;

public ClientSocket(String address, int port) {

this.serverAddress = address;

this.serverPort = port;

}

public void connect() {

try {

socket = new Socket(serverAddress, serverPort);

PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

// Sunucuya mesaj gönder

out.println(“Merhaba Sunucu!”);

// Sunucudan yanıt al

String response = in.readLine();

System.out.println(“Sunucudan gelen yanıt: ” + response);

in.close();

out.close();

socket.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

“`

3. Arka Plan İşlemleri İçin AsyncTask Kullanma

Socket bağlantıları, ağ üzerinde çalıştıkları için ana UI thread’ini bloklamamak adına arka planda çalıştırılmalıdır. Bunun için `AsyncTask` sınıfını kullanabilirsiniz:

“`java

import android.os.AsyncTask;

public class ConnectTask extends AsyncTask {

private String address;

private int port;

public ConnectTask(String address, int port) {

this.address = address;

this.port = port;

}

@Override

protected String doInBackground(Void… voids) {

ClientSocket clientSocket = new ClientSocket(address, port);

clientSocket.connect();

return null;

}

}

“`

4. Uygulama Arayüzü Oluşturma

Socket bağlantınızı başlatmak için bir kullanıcı arayüzü oluşturmalısınız. `activity_main.xml` dosyasına bir buton ekleyin:

“`xml

Başa dön tuşu