Yardım Kendi programımı yapmak istiyorum

taha.py

Asistan
Katılım
4 Temmuz 2022
Mesajlar
157
Reaksiyon puanı
46
Puanları
28
Konum
Bilgisayar kasasının içindeki kablolar
Merhaba forum sakinleri, telefonumun ekranını bilgisayara yansıtmak için bi yazılım kullanıyordum ve artık o programı kullanmak istemiyorum kendi yazılımımı yapıp kullanmak istiyorum. Yazılım ismi scrcpy. Bu tarz bi yazılım yapmak için ne yapmalıyım öneriniz var mı? (Yasak olduğunu düşündüğüm için yazılımın linkini koymadım.)
 

Koray Üstündağ

Öğrenci
Katılım
2 Mart 2022
Mesajlar
5
Reaksiyon puanı
7
Puanları
3
Yaş
27
Dostum, dediğin gibi bir program yapmak istiyorsan ilk önce gereksinimlerini belirlemek zorundasın.
Mesela ben sadece ekranı pcye yansıtmak istiyorum ama pcden telefona müdahale etmek istemiyorum veya müdahele etmek istiyorum, uzaktan erişim olsun istiyorum gibi vs...

Diyelim ki sadece yansıtacaksın. O zaman telefonun işletim sistemine göre hareket etmelisin. TCP/IP protokolünün ve Server-Client Modeli'nin nasıl çalıştığını öğrenmelisin. Server-Client ve TCP protokolünü öğrendiğini varsayıyorum, şimdi ise bilgisayara yapacağın program için bir yazılım dili öğrenmen gerekmektedir. Eğer bilgisayarın MacOS ise Objective-C öğrenebilir, Windows ise C# öğrenebilir, veya Linux dağıtımı ise C/C++ öğrenebilirsin. Bilgisayarının Windows olduğunu varsayıyorum ve telefonunun da Android olduğunu varsayıyorum.

Visual Studio senin projeni geliştirmen için kullanışlı ve güçlü bir IDE olacaktır.
Ayrıca Xamarin kullanarak işini daha kolay halledebilirsin.

Örnek bir C# TCP kodları:
C#:
static void Connect(String server, String message)
{
  try
  {
    // Create a TcpClient.
    // Note, for this client to work you need to have a TcpServer
    // connected to the same address as specified by the server, port
    // combination.
    Int32 port = 13000;
    TcpClient client = new TcpClient(server, port);

    // Translate the passed message into ASCII and store it as a Byte array.
    Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);

    // Get a client stream for reading and writing.
   //  Stream stream = client.GetStream();

    NetworkStream stream = client.GetStream();

    // Send the message to the connected TcpServer.
    stream.Write(data, 0, data.Length);

    Console.WriteLine("Sent: {0}", message);

    // Receive the TcpServer.response.

    // Buffer to store the response bytes.
    data = new Byte[256];

    // String to store the response ASCII representation.
    String responseData = String.Empty;

    // Read the first batch of the TcpServer response bytes.
    Int32 bytes = stream.Read(data, 0, data.Length);
    responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
    Console.WriteLine("Received: {0}", responseData);

    // Close everything.
    stream.Close();
    client.Close();
  }
  catch (ArgumentNullException e)
  {
    Console.WriteLine("ArgumentNullException: {0}", e);
  }
  catch (SocketException e)
  {
    Console.WriteLine("SocketException: {0}", e);
  }

  Console.WriteLine("\n Press Enter to continue...");
  Console.Read();
}

Örnek bir C TCP kodları:
C:
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <unistd.h>
#define PORT 8080
int main(int argc, char const* argv[])
{
    int server_fd, new_socket, valread;
    struct sockaddr_in address;
    int opt = 1;
    int addrlen = sizeof(address);
    char buffer[1024] = { 0 };
    char* hello = "Hello from server";
 
    // Creating socket file descriptor
    if ((server_fd = socket(AF_INET, SOCK_STREAM, 0))
        == 0) {
        perror("socket failed");
        exit(EXIT_FAILURE);
    }
 
    // Forcefully attaching socket to the port 8080
    if (setsockopt(server_fd, SOL_SOCKET,
                   SO_REUSEADDR | SO_REUSEPORT, &opt,
                   sizeof(opt))) {
        perror("setsockopt");
        exit(EXIT_FAILURE);
    }
    address.sin_family = AF_INET;
    address.sin_addr.s_addr = INADDR_ANY;
    address.sin_port = htons(PORT);
 
    // Forcefully attaching socket to the port 8080
    if (bind(server_fd, (struct sockaddr*)&address,
             sizeof(address))
        < 0) {
        perror("bind failed");
        exit(EXIT_FAILURE);
    }
    if (listen(server_fd, 3) < 0) {
        perror("listen");
        exit(EXIT_FAILURE);
    }
    if ((new_socket
         = accept(server_fd, (struct sockaddr*)&address,
                  (socklen_t*)&addrlen))
        < 0) {
        perror("accept");
        exit(EXIT_FAILURE);
    }
    valread = read(new_socket, buffer, 1024);
    printf("%s\n", buffer);
    send(new_socket, hello, strlen(hello), 0);
    printf("Hello message sent\n");
    
  // closing the connected socket
    close(new_socket);
  // closing the listening socket
    shutdown(server_fd, SHUT_RDWR);
    return 0;
}

Kodlar örnek amaçlıdır.

Ek olarak sana en çok lazım olan şey zaman...
 

Gogos

Öğrenci
Katılım
20 Temmuz 2022
Mesajlar
1
Reaksiyon puanı
0
Puanları
1
Yaş
25
Merhaba forum sakinleri, telefonumun ekranını bilgisayara yansıtmak için bi yazılım kullanıyordum ve artık o programı kullanmak istemiyorum kendi yazılımımı yapıp kullanmak istiyorum. Yazılım ismi scrcpy. Bu tarz bi yazılım yapmak için ne yapmalıyım öneriniz var mı? (Yasak olduğunu düşündüğüm için yazılımın linkini koymadım.)
Eminim kolay olmayacaktır, profosyonel bir yazılımcıdan destek alman gerekecek
 
Üst