Warning: Use of undefined constant DISABLE_WP_CRON - assumed 'DISABLE_WP_CRON' (this will throw an Error in a future version of PHP) in /var/www/vhosts/emrebektas.com/httpdocs/wp-config.php on line 11

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/emrebektas.com/httpdocs/wp-config.php:11) in /var/www/vhosts/emrebektas.com/httpdocs/wp-content/plugins/all-in-one-seo-pack/app/Common/Meta/Robots.php on line 89

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/emrebektas.com/httpdocs/wp-config.php:11) in /var/www/vhosts/emrebektas.com/httpdocs/wp-includes/feed-rss2.php on line 8
java tcp server client uygulaması | Emre Bektaş https://www.emrebektas.com Kişisel Web Sayfası Fri, 16 Sep 2016 08:53:08 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 Java ile TCP-UDP Server/Client Uygulamaları https://www.emrebektas.com/java/java-ile-tcp-udp-serverclient-uygulamalari/ https://www.emrebektas.com/java/java-ile-tcp-udp-serverclient-uygulamalari/#comments Wed, 28 Jan 2015 21:46:31 +0000 http://www.emrebektas.com/?p=300 Merhaba arkadaşlar bugün sizlere TCP ve UDP server cliend bağlantılarının java ile nasıl yapılabileceği hakkında kodlar vereceğim. TCP server/client dosyası ve UDP server/client java dosyalarını kodlarda belirttim. Ek olarak benim eklediğim bir bölüm var....

The post Java ile TCP-UDP Server/Client Uygulamaları first appeared on Emre Bektaş.

]]>
Merhaba arkadaşlar bugün sizlere TCP ve UDP server cliend bağlantılarının java ile nasıl yapılabileceği hakkında kodlar vereceğim.
TCP server/client dosyası ve UDP server/client java dosyalarını kodlarda belirttim. Ek olarak benim eklediğim bir bölüm var.
Benim amacım linux üzerinden bir server kurup örneğin robotu kontrol etmek ve robottan gelen verileri kod içerisinde yorumlamaktı. Örnek olarak sizlere .equals komutunu göstereceğim.
UDP Server.java dosyasında bulunana sentenceyi direkt olarak kullanamıyoruz. Eğer clienttan emre komutunu yollarsak
stringin boyutu 1024(byte[] dizisinin boyutu) oluyor. Bizim bunu indirgememiz gerekiyor ki gelen veriyi yakalayabilelim.
// olan satısı kaldırıp diğerlerini eklerseniz işlem tamam oluyor. clientden emrebektas gönderirsem emre tespit edildi 🙂 şeklinde output vermesi gerekiyor.
Tekrarlamış oluyorum ama bu değişikliği yapmayıp sentence.equalsIgnoreCase(“emrebektas”) yazarsanız emrebektas’ı yakalayamazsınız. çünkü emrebektas’ın uzunluğu 10 iken sentence uzunluğu 1024.

// String sentence = new String( receivePacket.getData());
String sentence = new String( receivePacket.getData(),0,receivePacket.getLength(),"UTF-8");
if(sentence.equalsIgnoreCase("emrebektas"))
System.out.println("emre tespit edildi :)");
System.out.println("RECEIVED: " + sentence);

 

Örnek olması amacıyla makalenin sonunda UDP server/client uygulama örneği ekledim.

TCPServer.java

import java.io.*;
import java.net.*;

class TCPServer
{
   public static void main(String argv[]) throws Exception
      {
         String clientSentence;
         String capitalizedSentence;
         ServerSocket welcomeSocket = new ServerSocket(6789);

         while(true)
         {
            Socket connectionSocket = welcomeSocket.accept();
            BufferedReader inFromClient =
               new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
            DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
            clientSentence = inFromClient.readLine();
            System.out.println("Received: " + clientSentence);
            capitalizedSentence = clientSentence.toUpperCase() + '\n';
            outToClient.writeBytes(capitalizedSentence);
         }
      }
}

TCPClient.java

import java.io.*;
import java.net.*;

class TCPClient
{
 public static void main(String argv[]) throws Exception
 {
  String sentence;
  String modifiedSentence;
  BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
  Socket clientSocket = new Socket("localhost", 6789);
  DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
  BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
  sentence = inFromUser.readLine();
  outToServer.writeBytes(sentence + '\n');
  modifiedSentence = inFromServer.readLine();
  System.out.println("FROM SERVER: " + modifiedSentence);
  clientSocket.close();
 }
}

 

 

UDPServer.java

import java.io.*;
import java.net.*;

class UDPServer
{
   public static void main(String args[]) throws Exception
      {
         DatagramSocket serverSocket = new DatagramSocket(9876);
            byte[] receiveData = new byte[1024];
            byte[] sendData = new byte[1024];
            while(true)
               {
                  DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
                  serverSocket.receive(receivePacket);
                  String sentence = new String( receivePacket.getData());
                  System.out.println("RECEIVED: " + sentence);
                  InetAddress IPAddress = receivePacket.getAddress();
                  int port = receivePacket.getPort();
                  String capitalizedSentence = sentence.toUpperCase();
                  sendData = capitalizedSentence.getBytes();
                  DatagramPacket sendPacket =
                  new DatagramPacket(sendData, sendData.length, IPAddress, port);
                  serverSocket.send(sendPacket);
               }
      }
}

 UDPClient.java

import java.io.*;
import java.net.*;

class UDPClient
{
   public static void main(String args[]) throws Exception
   {
      BufferedReader inFromUser =
         new BufferedReader(new InputStreamReader(System.in));
      DatagramSocket clientSocket = new DatagramSocket();
      InetAddress IPAddress = InetAddress.getByName("localhost");
      byte[] sendData = new byte[1024];
      byte[] receiveData = new byte[1024];
      String sentence = inFromUser.readLine();
      sendData = sentence.getBytes();
      DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
      clientSocket.send(sendPacket);
      DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
      clientSocket.receive(receivePacket);
      String modifiedSentence = new String(receivePacket.getData());
      System.out.println("FROM SERVER:" + modifiedSentence);
      clientSocket.close();
   }
}


 

Örnek Program;

java tcp-udp communication

 

Kaynak: Computer Networking: A Top Down Approach, by Kurose and Ross

The post Java ile TCP-UDP Server/Client Uygulamaları first appeared on Emre Bektaş.

]]>
https://www.emrebektas.com/java/java-ile-tcp-udp-serverclient-uygulamalari/feed/ 2