UDP Socket Programming in Java

rock pora

Well-known member
  • May 18, 2011
    11,951
    2,791
    113
    ###~.:::.සියනෑ කෝරළේ.::.~##
    Ane bn menna me program eke vena case eka pahadili karala diyankoo

    1)InetAddress add = InetAddress.getByName(????);
    meke getByName ekata danne mokadda??


    Code:
    import java.io.*;
    import java.net.*;
    class UDPServer1 {
        public static void main(String [] args) {
           try {
              System.out.println("Server is starting : ");
               
              DatagramSocket socket = new DatagramSocket(7500);
              byte[] buffer  = new byte[256];
            
              DatagramPacket    incomePacket   = new DatagramPacket(buffer,buffer.length);
              socket.receive(incomePacket);
    
              InetAddress client_address = incomePacket.getAddress();
              int client_port  = incomePacket.getPort();
    
              String message = new String(buffer);
              System.out.println("Server Received \""+message+"\"");
    
             
                 String reply = message + " is sent to server " ;
                 byte[] replyBytes =reply.getBytes();
                 DatagramPacket replyPacket  = new DatagramPacket(replyBytes,replyBytes.length,client_address,client_port);
    
             
                socket.send(replyPacket);
         
             
                socket.close();
    
           }
             catch (SocketException e ) {
             // TODO Auto-generated catch block
               e.printStackTrace();
          }  catch (IOException e ) {
             // TODO Auto-generated catch block
              e.printStackTrace();
          }
    
    
    
        }
    
    }
    Code:
    import java.io.*;
    import java.net.*;
    import java.util.*;
    
    class UDPClient1 {
        public static void main(String [] args ) {
           try {
              System.out.println("client is starting ");
              
                DatagramSocket socket = new DatagramSocket();
                 
                System.out.println("enter your message : ");
                Scanner scan = new Scanner(System.in);
                String requestMessage = scan.nextLine();
    
                byte[] requestBytes = requestMessage.getBytes();
    
                InetAddress serverAddress = InetAddress.getByName("127.0.0.1");
    
                DatagramPacket requestPacket = new DatagramPacket(requestBytes, requestBytes.length, serverAddress, 7500);
    
                socket.send(requestPacket);
      
                byte[] responseBuffer = new byte[256];
               DatagramPacket responsePacket = new DatagramPacket(responseBuffer, responseBuffer.length);
     
               socket.receive(responsePacket);
            
            
               String responseMessage = new String(responseBuffer,0,responsePacket.getLength());
               System.out.println("Server response "+responseMessage);
    
           
              socket.close();
          }
             catch(SocketException e) {
              // TODO Auto-generated catch block
                e.printStackTrace();
            }catch (UnknownHostException e ) {
              // TODO Auto-generated catch block
                e.printStackTrace();
            }catch(IOException e ) {
             System.out.println(e);
            }
     
       }
    }
    2) meke server 1e InetAddress 1i port ekai kohomada bn araganne??
    receive une data,data length vitharane

    3)

    DatagramPacket eken karanne data send karana receive karaganna ona array 1ta store karaganna ekada??


    e array ekata client send karana data,datalength,InetAddress,port okkoma receive karaddi yanne kohomda bn??

    dan e buffer array eke ara okkoma(data,address,port..) thiyeddi yatin string variable ekakata pass una data eka vitharak ganne kohomda bn??
    String clz ekata pass kalama ehema ganna puluvanda??

    3)String reply = message+ " is sent to server " ;
    meke " is sent to server " kiyana tika display venne nane bn

    4)ai client program eke me vidiyata,
    String responseMessage = new String(responseBuffer,0,responsePacket.getLength());

    string clz ekata array ekai,length ekai thava 0kui yavanne??
    anna e tika poddak pahadili karala diyankooo

    bump ekakvath dala yanna machooo
     
    Last edited:

    Radioactive

    Member
    Jul 22, 2014
    10,047
    732
    0
    මචන් documentation එක බලන්න කෝ ඒකේ ඕක ලස්සනට විස්තර කරලා තියෙනවා
    http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html

    getByName කියන method එකෙන් කරන්නේ Ip address එහෙක domain එක අදුන ගෙන ඒක return කරන එකයි, simple නේ. උදාහරණයකට කිව්වොත්

    34.34.23.5 වගේ IP එකක් දුන්නම method එකට ඒකේ domain එක (example.dom) return කරනවා.
     

    rock pora

    Well-known member
  • May 18, 2011
    11,951
    2,791
    113
    ###~.:::.සියනෑ කෝරළේ.::.~##
    මචන් documentation එක බලන්න කෝ ඒකේ ඕක ලස්සනට විස්තර කරලා තියෙනවා
    http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html

    getByName කියන method එකෙන් කරන්නේ Ip address එහෙක domain එක අදුන ගෙන ඒක return කරන එකයි, simple නේ. උදාහරණයකට කිව්වොත්

    34.34.23.5 වගේ IP එකක් දුන්නම method එකට ඒකේ domain එක (example.dom) return කරනවා.

    mn araka kiyavana gaman bn unne,eka kiyavala kachal vela thiyenne bn dan.
    ithin ai bn server ekata clientge domain ekak??IP eka hari port ekak hari ganne nathuva domain ekak ganne??
    ethanata denne kage IP address ekada bn??
     

    Radioactive

    Member
    Jul 22, 2014
    10,047
    732
    0
    mn araka kiyavana gaman bn unne,eka kiyavala kachal vela thiyenne bn dan.
    ithin ai bn server ekata clientge domain ekak??IP eka hari port ekak hari ganne nathuva domain ekak ganne??
    ethanata denne kage IP address ekada bn??

    server එකට නෙවෙයි ඕක තියෙන්නේ අපිට බලන්නයි. :yes: නමුත් server එකටත් domain name එක ඕන වෙනවා , උදාහරණයකට කිව්වොත් client ගහනවා domain එක ඊට පස්සේ ඒක compare කරලා බලන්න domain එක හොදයි. සමහර site වල IP 2,3 තියෙනවා නමුත් domain එක එකයි එතකොට domain එකෙන් compare කරන එක හොදයි IP එකෙන් compare කරනවට වඩා.
     

    rock pora

    Well-known member
  • May 18, 2011
    11,951
    2,791
    113
    ###~.:::.සියනෑ කෝරළේ.::.~##
    server එකට නෙවෙයි ඕක තියෙන්නේ අපිට බලන්නයි. :yes: නමුත් server එකටත් domain name එක ඕන වෙනවා , උදාහරණයකට කිව්වොත් client ගහනවා domain එක ඊට පස්සේ ඒක compare කරලා බලන්න domain එක හොදයි. සමහර site වල IP 2,3 තියෙනවා නමුත් domain එක එකයි එතකොට domain එකෙන් compare කරන එක හොදයි IP එකෙන් compare කරනවට වඩා.
    ammatasiri ela ela machoo
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,849
    1
    9,594
    113
    Gampaha
    Code:
            Socket socket = new Socket();
            InetSocketAddress address = new InetSocketAddress("www.google.com", 80);
    
             socket.connect(address, 3000);
    Code:
    String getHostIP = InetAddress.getByName(host).getHostAddress();
    Code:
    String getAllHostIP[] = InetAddress.getAllByName(host);
    :D:D
     
    Last edited:

    rock pora

    Well-known member
  • May 18, 2011
    11,951
    2,791
    113
    ###~.:::.සියනෑ කෝරළේ.::.~##
    Code:
            Socket socket = new Socket();
            InetSocketAddress address = new InetSocketAddress("www.google.com", 80);
    
             socket.connect(address, 3000);
    Code:
    String getHostIP = InetAddress.getByName(host).getHostAddress();
    Code:
    String getAllHostIP[] = InetAddress.getAllByName(host);
    :D:D
    uba meva iye danne na kivva neda bn:angry::angry::angry::P
    mokadda me karala thiyenne???
    ubala ithin danna nisa apita hena evagen neda talka denne :oo:
    melo magulak therenne na bnnnnnnn :D
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,849
    1
    9,594
    113
    Gampaha
    uba meva iye danne na kivva neda bn:angry::angry::angry::P
    mokadda me karala thiyenne???
    ubala ithin danna nisa apita hena evagen neda talka denne :oo:
    melo magulak therenne na bnnnnnnn :D
    අඩෝ කියල දෙන්න දන්නෙ නෑ බන්.. ඒ කිව්වෙ මේව වැඩිය මම පාවිච්චි කරල නෑ.. :sorry:

    Code:
        public static boolean isConnectionAvailable() {
            Socket socket = new Socket();
            InetSocketAddress address = new InetSocketAddress("www.google.com", 80);
            try {
                socket.connect(address, 3000);
                return true;
            } catch (IOException ex) {
                System.out.println("Connection failed. java.net.UnknownHost: www.google.com");
            } finally {
                try {
                    socket.close();
                } catch (Exception ex) {
                    Logger.getLogger(InternetConnection.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            return false;
        }

    පලවෙනි කෝඩ් එකෙන් කරන්නෙ පින්ග් කරල බලනව internet connection එක තියෙනවද කියල. අපි මෙහෙම හිතමු. උබට ඕනෙ backup එකක් upload කරන්න. එතකොට internet connection එක තියෙනවද කියල මේ ක්‍රමේට බලන්න පුලුවන්. බොහොම සරල ක්‍රමයක්.. google කියන්නෙ ලේසියෙන් වැටෙන්නෙ නැති සයිට් එකක් නෙ.

    Code:
        public static String getHostIP(String host) {
            try {
                return InetAddress.getByName(host).getHostAddress();
            } catch (UnknownHostException ex) {
                Logger.getLogger(InternetConnection.class.getName()).log(Level.SEVERE, null, ex);
            }
            return null;
        }

    ඊට පස්සෙ අපිට ඕනෙ නම් මේකෙන් IP address ගන්න පුලුවන්. එතකොට එන්නෙ මුලින්ම return කරන IP එක. නමුත් google, fb වගේ සයිට් වලට IP ගොඩක් තියෙනව. මේ ඔක්කොම ගන්න ඕනෙ නම් යට කෝඩ් එකෙන් පුලුවන්.

    Code:
        public static InetAddress[] getAllHostIP(String host) {
            try {
                return InetAddress.getAllByName(host);
            } catch (UnknownHostException ex) {
                Logger.getLogger(InternetConnection.class.getName()).log(Level.SEVERE, null, ex);
            }
            return null;
        }
     

    rock pora

    Well-known member
  • May 18, 2011
    11,951
    2,791
    113
    ###~.:::.සියනෑ කෝරළේ.::.~##
    අඩෝ කියල දෙන්න දන්නෙ නෑ බන්.. ඒ කිව්වෙ මේව වැඩිය මම පාවිච්චි කරල නෑ.. :sorry:

    Code:
        public static boolean isConnectionAvailable() {
            Socket socket = new Socket();
            InetSocketAddress address = new InetSocketAddress("www.google.com", 80);
            try {
                socket.connect(address, 3000);
                return true;
            } catch (IOException ex) {
                System.out.println("Connection failed. java.net.UnknownHost: www.google.com");
            } finally {
                try {
                    socket.close();
                } catch (Exception ex) {
                    Logger.getLogger(InternetConnection.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            return false;
        }
    පලවෙනි කෝඩ් එකෙන් කරන්නෙ පින්ග් කරල බලනව internet connection එක තියෙනවද කියල. අපි මෙහෙම හිතමු. උබට ඕනෙ backup එකක් upload කරන්න. එතකොට internet connection එක තියෙනවද කියල මේ ක්‍රමේට බලන්න පුලුවන්. බොහොම සරල ක්‍රමයක්.. google කියන්නෙ ලේසියෙන් වැටෙන්නෙ නැති සයිට් එකක් නෙ.

    Code:
        public static String getHostIP(String host) {
            try {
                return InetAddress.getByName(host).getHostAddress();
            } catch (UnknownHostException ex) {
                Logger.getLogger(InternetConnection.class.getName()).log(Level.SEVERE, null, ex);
            }
            return null;
        }
    ඊට පස්සෙ අපිට ඕනෙ නම් මේකෙන් IP address ගන්න පුලුවන්. එතකොට එන්නෙ මුලින්ම return කරන IP එක. නමුත් google, fb වගේ සයිට් වලට IP ගොඩක් තියෙනව. මේ ඔක්කොම ගන්න ඕනෙ නම් යට කෝඩ් එකෙන් පුලුවන්.

    Code:
        public static InetAddress[] getAllHostIP(String host) {
            try {
                return InetAddress.getAllByName(host);
            } catch (UnknownHostException ex) {
                Logger.getLogger(InternetConnection.class.getName()).log(Level.SEVERE, null, ex);
            }
            return null;
        }


    dannava vadi unamath kiyala denna ba bn :P

    socket.connect(address, 3000);
    meke 3000 kiyanne mokadda bn???

    catch (IOException ex) {
    System.out.println("Connection failed. java.net.UnknownHost: www.google.com");

    UnknownHost error ekak IOException eken catch karanavada bn??
    eka ganne UnknownHostException eken nemeida??mata thama hariyata exception handling therenne na bn


    macho ara mage programs 2e server eke,
    byte[] replyBytes =reply.getBytes();
    me vidiyata kelinma array ekata initialize karala thiyenava.array size ekak dilath na.kohomda bn ehema karanne??
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,849
    1
    9,594
    113
    Gampaha
    dannava vadi unamath kiyala denna ba bn :P

    socket.connect(address, 3000);
    meke 3000 kiyanne mokadda bn???

    catch (IOException ex) {
    System.out.println("Connection failed. java.net.UnknownHost: www.google.com");

    UnknownHost error ekak IOException eken catch karanavada bn??
    eka ganne UnknownHostException eken nemeida??mata thama hariyata exception handling therenne na bn


    macho ara mage programs 2e server eke,
    byte[] replyBytes =reply.getBytes();
    me vidiyata kelinma array ekata initialize karala thiyenava.array size ekak dilath na.kohomda bn ehema karanne??
    ඔව් IOException එකෙන් catch කරනව. ඒත් එතන log එක අයින් කලේ exe කලාට පස්සෙ ඔක්කොම exception logs, error කියල file එකකට save කරනවනෙ. ඉතිං internet connection නැති එක error එකක් නොවන නිස ඒ log එක අයින් කලා. ඔය try-catch එක auto වැටෙන එකක් නෙ. UnknownHostException වෙනුවට IOException වැටුනෙ ඇයි කියල හරියටම මීටර් නෑ.
    3000 කියන්නෙ time out එක. උබ පාවිච්චි කරන IDE එක මොකද්ද? CTRL+SPACE ගහපුවාම පැරාවලින් ඕනෙ මොනාද කියල Netbeans IDE එකෙන් නම් හොදටම බලාගන්න පුලුවන්.


    මම දාපු 3න් වෙනි කෝඩ් එකෙත් එහෙමයි array සයිස් එකක් නැතුව කෙලින්ම තියෙන තරම එනව.
    InetAddress ip[] = InetAddress.getAllByName(host);

    ඒකෙ තියරිය නම් දන්නෙ නෑ. ඕනෙ නම් arrays questions ටිකක් එවන්නම් ඒකෙන් තේරුම් ගන්න පුලුවන් වෙයි, අද බෑ ඩෙස්ක්ටොප් එකේ තියෙන්නෙ. ඒකෙ මොනිටරේත් ලැපට ගහල. හෙට එවන්නම්.

    සාම්න්‍යෙන් මෙහෙමත් කරන්න පුලුවන් array size එකක් දෙන්නෙ නැතුව.

    String a[] = new String{"A","B","C","D"};

    String name = "Hello-World-Elakiri-Thread";
    String b[] = name.split("-");

    තියරිය නම් දන්නෙ නෑ.
    කෝමේ අනිත් ජාව වැඩ්ඩො ටික..
     

    rock pora

    Well-known member
  • May 18, 2011
    11,951
    2,791
    113
    ###~.:::.සියනෑ කෝරළේ.::.~##
    ඔව් IOException එකෙන් catch කරනව. ඒත් එතන log එක අයින් කලේ exe කලාට පස්සෙ ඔක්කොම exception logs, error කියල file එකකට save කරනවනෙ. ඉතිං internet connection නැති එක error එකක් නොවන නිස ඒ log එක අයින් කලා. ඔය try-catch එක auto වැටෙන එකක් නෙ. UnknownHostException වෙනුවට IOException වැටුනෙ ඇයි කියල හරියටම මීටර් නෑ.
    3000 කියන්නෙ time out එක. උබ පාවිච්චි කරන IDE එක මොකද්ද? CTRL+SPACE ගහපුවාම පැරාවලින් ඕනෙ මොනාද කියල Netbeans IDE එකෙන් නම් හොදටම බලාගන්න පුලුවන්.


    මම දාපු 3න් වෙනි කෝඩ් එකෙත් එහෙමයි array සයිස් එකක් නැතුව කෙලින්ම තියෙන තරම එනව.
    InetAddress ip[] = InetAddress.getAllByName(host);

    ඒකෙ තියරිය නම් දන්නෙ නෑ. ඕනෙ නම් arrays questions ටිකක් එවන්නම් ඒකෙන් තේරුම් ගන්න පුලුවන් වෙයි, අද බෑ ඩෙස්ක්ටොප් එකේ තියෙන්නෙ. ඒකෙ මොනිටරේත් ලැපට ගහල. හෙට එවන්නම්.

    සාම්න්‍යෙන් මෙහෙමත් කරන්න පුලුවන් array size එකක් දෙන්නෙ නැතුව.

    String a[] = new String{"A","B","C","D"};

    String name = "Hello-World-Elakiri-Thread";
    String b[] = name.split("-");

    තියරිය නම් දන්නෙ නෑ.
    කෝමේ අනිත් ජාව වැඩ්ඩො ටික..


    ade fatta bn.thanx ah.ara uba kiyala thiyena internet connection thiyenavada nadda kiyana eva thama mata bara vadi vage bn :D
    mn tham amula inne.practical case valadi thama eka one,mn thama theory eka kurutu ganne bn.iy thama socket valata basse.

    ara array case eke size ekak nathuva ena ekak thama thiyenne bn.eth ehema kochcharak enavada danna bn,default array size ekakatada danna enne

    ubata puluvan velavaka ara questions tika evapanko macho.ela ela

    meke inna samaha unnam kiyanne java kala kiyala,eth prashnayak ahuvama un ekekvath na bn :rofl:

    un java puluvan kiyanne ara petti kadavalata hadana Db programs valatada koheda bn,evageth servers gavala na.nikanma kade vena eva tika noma dB eekakata adinava makanava thama :D

    samahara unnam ithin danna deval kiyanne nane,un katta kalalu igen agatthe,ithin apith katta kagena mahansi vela igen aganna onelu..

    ithin bn theory eka allaganne nathuva kohomada bn ethanin ehata yanne.meva mul evane bn.

    mn meke damme basic program 1kne bn.mata one une methana thiyena classes valin monavada venne kiyala hariyatama balagannai bn

    nathuva nikan flow vena vidiyata mata hithena deval hithagna guess karagatthata hariyanne nane bn..

    thanx macho ah.
    11.gif
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,849
    1
    9,594
    113
    Gampaha
    ade fatta bn.thanx ah.ara uba kiyala thiyena internet connection thiyenavada nadda kiyana eva thama mata bara vadi vage bn :D
    mn tham amula inne.practical case valadi thama eka one,mn thama theory eka kurutu ganne bn.iy thama socket valata basse.

    ara array case eke size ekak nathuva ena ekak thama thiyenne bn.eth ehema kochcharak enavada danna bn,default array size ekakatada danna enne

    ubata puluvan velavaka ara questions tika evapanko macho.ela ela

    meke inna samaha unnam kiyanne java kala kiyala,eth prashnayak ahuvama un ekekvath na bn :rofl:

    un java puluvan kiyanne ara petti kadavalata hadana Db programs valatada koheda bn,evageth servers gavala na.nikanma kade vena eva tika noma dB eekakata adinava makanava thama :D

    samahara unnam ithin danna deval kiyanne nane,un katta kalalu igen agatthe,ithin apith katta kagena mahansi vela igen aganna onelu..

    ithin bn theory eka allaganne nathuva kohomada bn ethanin ehata yanne.meva mul evane bn.

    mn meke damme basic program 1kne bn.mata one une methana thiyena classes valin monavada venne kiyala hariyatama balagannai bn

    nathuva nikan flow vena vidiyata mata hithena deval hithagna guess karagatthata hariyanne nane bn..

    thanx macho ah.
    11.gif
    කට්ටියට වැඩ ඇති බන්. නැත්තනම් මට වඩා දන්න උන් ගොඩක් ඉන්නව. :yes::yes: හෙට දිහාට මේක බම්ප් කරල බලන්න නිවාඩු දවස නිසා අනිත් උන් උදවු කරයි. :D
     

    K_ZONE

    Well-known member
  • May 28, 2009
    5,150
    4,041
    113
    invoke db "Injected Memory"

    MihiCherub කියලා තියෙන එක හරි :D උබ ජාවා කැ#යෙක්නෙ බං MihiCherub
    අද ඉදන් ජාවා අව්ලක් ආවොත් අහන්නෙ උබෙන් :P UDP Java Socket ගැන කිව්වා කියන්නෙ ඉතින් පොරක් තමයි :D

    මට සිද්ධිය තේරෙනවා, ඒත් ජාවා මෙලොව උට්ටක් මතක නැ, පාවිච්චියක්ම නැනෙ බං, මේ ලගදි Android app එකකුයි C# Program එකකුයි Socket වලින් Connect කරන්න ගිහින් Buffer වල match වෙන්නෙ නැ ති කේස් එකක් ඇවිත් Delete කරා Project එකම, Andoroid RAT එකක් අපරදෙ අයෙ පටන් ගන්න ඕන.

    rock pora උබට Sockets එක්ක වැඩ කරන්න කලින් TCP / UDP Protocol ගැනයි ඔය පැකට් කැලි එහෙ මෙහෙ යන හැටියි.
    පැකට් එකක් යන්නෙ කොහෙන්ද, මොනා අස්සෙන්ද කියලා පොඩ්ඩක් ඔලුවට දාගනින්. එත්කොට ඔය වැඩේ ලේසියි ගොඩක්,

    Multi-threading, Multi-Port listening එක්ක වැඩ කරා කියන්නෙ ඉතින් හොද දැනුමක් එනවා මචො.

    ඒත් එක්කම Zlib වගේ Compressing එකක් එක්ක, Send Receive වෙන Data Crypt කරන්න බලන්න, හොද knowledge එකක් එයි.
     
    • Like
    Reactions: rock pora

    Radioactive

    Member
    Jul 22, 2014
    10,047
    732
    0
    උබ මට message එකක් එවලා ප්‍රශ්න වගයක් ඇහුවා නේ? මම හිතන්නේ මචන් ඊට වඩා ලේසියි basic කිව්වා නම්, ඊට පස්සේ ,oracle documentation එක බලන්න එතකොට ඔළුවට වැදෙයි , තවත් තේරුනේ නැත්නම් මගෙන් අහන්න.
    google search කරද්දි. oracle documentation <java method/class name> කියලා search කරන්න
    example
    oracle documentation getBytes()

    java වල හැම දෙයක්ම හැදිලා තියෙන්නේ classes වශයෙන්. class එකක් කියන්නේ කේක් එකක් හදන්න ගන්න recipe(වට්ටෝරු) එකක් වගේ. වට්ටෝරු වක තියෙන්නේ කේක් එකක් හදන විදියයි (ඕන කරන දේවල්, හදන විදිය වගේ) ඊට පස්සේ මේක follow කරලා කේක් එකක් හැදුවම ඒක හරියට object (කේක්) එකක් වගේ. එතකොට උබට මේ object ,use කරලා ඕන දෙයක් කරන්න පුලුවන් (කන්න, බොන්න, නාන්න, මූනේ ඇතුල්ලන්න).

    එතකොට
    වට්ටෝරුව -> class
    කේක් එක -> object

    java වල මේ classes (වට්ටෝරු) ,store වෙලා තියෙන්නේ package ඇතුලේ ,ඒක හරියට මේ වගේ. හිතන්න උබේ ළග තියෙනවා ලොකු cupboard එකක්. ඒකේ තියෙනවා පොඩි පොඩි රාක්ක. මේ රාක්ක වල තියෙනවා විවිධ වට්ටෝරු (recipe). එක රාක්කයක තියෙනවා කේක් හදන්න ගන්න වට්ටෝරු ,තව රාක්කයක තියෙනවා බිත්තර හදන්න ගන්න වට්ටෝරු ,තවත් රාක්කයක තියෙනවා පුඩ්ම් හදන්න ගන්න වට්ටෝරු. මේවා උබට use කරන්න ඕනේ නම් උබ කරන්නේ මොකක්ද? කාටහරි කියනවා අර cupboard එකේ පුඩිම් රාක්කයේ තියෙනවා අහවල් වට්ටෝරුව මට ගෙනත් දෙන්න කියලා, එහෙම නැත්නම් උබ කියනවා අර cupboard එකේ කේක් රාක්කයේ තියෙන වට්ටෝරු ඔක්කොම මට ගෙනත් දෙන්න කියලා.

    අර cupboard එකේ පුඩිම් රාක්කයේ තියෙනවා අහවල් වට්ටෝරුව මට ගෙනත් දෙන්න
    import java.graphics.Rectangle;
    (java කබඩ් එකේ, ග්‍රැෆික් රාක්කයේ තියෙන rectangle වට්ටෝරුව)

    අර cupboard එකේ කේක් රාක්කයේ තියෙන වට්ටෝරු ඔක්කොම මට ගෙනත් දෙන්න කියලා.
    import java.graphics.*
    (java කබඩ් එකේ ග්‍රැෆික් රාක්කයේ තියෙන ඔක්කොම වට්ටෝරු)

    ඊට පස්සේ class එහෙක තියෙනවා methods. method එකක් හරියට ,වට්ටෝරුවක තියෙන කරන්නට ඕන උපදෙස් වගේ.
    method එකක syntax (ගහන්න ඕන විදිය යන්නේ මේ විදියටයි)

    public double getAnswer(double oneVal,double twoVal) {
    return oneVal + twoVal
    }


    public කියන්නේ modifier එකයි, මේක හරියට මේ වගේ. උදාහරණයකට හිතන්න, උබ රාක්කයෙන් ගන්නවා වට්ටෝරුවක්. ඒකේ එක උපදෙසක් ලියලා තියෙන්නේ සංකේත වචන වලින් මොකද ලියපු එකාට ඕන ඒ උපදෙස හංගන්න එතකොට ඒක private නමුත් ලියපු උපදෙස හැමෝටම පේන්න තියෙනවා (සාමාන්‍යය අකුරු වලින්) නම් එතකොට ඒක public. හිතන්න public, toilet එකක් ගැන. එක public කියන්නේ හැමෝටම යන්න පුලුවන්, private කියන්නේ කොටසකට විතරයි යන්න පුලුවන්. උබේ ගෙදර private, නමුත් නගර සභාව public.

    double කියන්නේ return type එක. return කරනවා කිව්වේ මේ වගේ දෙයක්. උබ කොටස් වෙළද පොළට ගිහින් ආයෝජනය කරනවා රුපියල් 1000 ක් , ඊට පස්සේ උබට අන්තිමට ලැබෙනවා රුපියල් 10000 වගේ. එතකොට return කියන එකත් ඒ වගේ. උබ මොකක හරි මොනව හරි දැමම්ම ඒක process වෙලා යම් කිසි දෙයක් වෙලා උබට ලැබෙන එලය රදවන්නයි return එක තියෙන්නේ. මෙතන කියන්නේ ඒ එලයේ type එක. උදාහරණයට කිව්වොත් එලයේ type එකේ double නම් ඒකේ 2.22 (දශම) වගේ සංඛයා රදවන්න කරන්න පුලුවන් ,ඒක integer නම් උබට පුලුවන් පූර්න සංඛයා (2,4,5,6 වගේ) රදවන්න. උබට කොටස් වෙළද පොළෙන් 1000.60 උනත් ලැබෙන්න පුලුවන් නේ? කඩෙන් බඩු ගත්තම ශත ගනන් වුනත් ලැබෙනවා නේ? එතකොට එහෙම සංඛ්‍යා රදවන්න හොදම ක්‍රමය ඒ අගය double විදියට සදහන් කිරිමයි.

    ඊළග එක method එකේ නම. ඕනම එකකට නමක් තියෙන්න එපැයි නේ.

    ඊළ සෙට් එකට කියන්නේ parameter list එක කියලයි, එතනින් තමයි උබ method එකට ඕන දේවල් දෙන්නේ, කලින් උදහරණයේ වගේ නම් උබ කොටස් වෙළද පොලට දැම්ම 1000 යන්නේ ඒ හරහායි,
    ඒකෙත් type එකක් තියෙනවා. ඒ type එක හරියට උබ දාන මුදලේ type එකේ වගේ. උබ දැම්මොත් 1000 ක් ඒක, integer (පූර්ණ සංඛ්‍යා) උබ දැම්මොත් 1000.50 ඒක double (දශම සංඛ්‍යා).

    return oneVal + twoVal එක තමයි ඇතුලේ වෙන දේ, හරියට කොටස් වෙළද පොලේ ඇතුලේ වෙන දේ වගේ.
    මෙතනින් වෙන්නේ අගයන් දෙක එකතු වෙලා ,ඒකේ එලය return කරන එකයි, return කරනවා කිව්වේ උබට දෙන එකයි (උබ කොටස් වෙළද පොළට දානවා, කොටස් වෙළද පොලෙන් අන්තිමට උබට එලයක් දෙනවා)

    මේකෙන් තමයි අපි ඇතුලට values pass කරන්නේ ,method එකේ.
    getAnswer(1,2)
     

    rock pora

    Well-known member
  • May 18, 2011
    11,951
    2,791
    113
    ###~.:::.සියනෑ කෝරළේ.::.~##
    කට්ටියට වැඩ ඇති බන්. නැත්තනම් මට වඩා දන්න උන් ගොඩක් ඉන්නව. :yes::yes: හෙට දිහාට මේක බම්ප් කරල බලන්න නිවාඩු දවස නිසා අනිත් උන් උදවු කරයි. :D
    ow bn.mageth ithin velava thama bn.awlak na bn ova ohoma thama :D
    thanx machooo


    MihiCherub කියලා තියෙන එක හරි :D උබ ජාවා කැ#යෙක්නෙ බං MihiCherub
    අද ඉදන් ජාවා අව්ලක් ආවොත් අහන්නෙ උබෙන් :P UDP Java Socket ගැන කිව්වා කියන්නෙ ඉතින් පොරක් තමයි :D

    මට සිද්ධිය තේරෙනවා, ඒත් ජාවා මෙලොව උට්ටක් මතක නැ, පාවිච්චියක්ම නැනෙ බං, මේ ලගදි Android app එකකුයි C# Program එකකුයි Socket වලින් Connect කරන්න ගිහින් Buffer වල match වෙන්නෙ නැ ති කේස් එකක් ඇවිත් Delete කරා Project එකම, Andoroid RAT එකක් අපරදෙ අයෙ පටන් ගන්න ඕන.

    rock pora උබට Sockets එක්ක වැඩ කරන්න කලින් TCP / UDP Protocol ගැනයි ඔය පැකට් කැලි එහෙ මෙහෙ යන හැටියි.
    පැකට් එකක් යන්නෙ කොහෙන්ද, මොනා අස්සෙන්ද කියලා පොඩ්ඩක් ඔලුවට දාගනින්. එත්කොට ඔය වැඩේ ලේසියි ගොඩක්,

    Multi-threading, Multi-Port listening එක්ක වැඩ කරා කියන්නෙ ඉතින් හොද දැනුමක් එනවා මචො.

    ඒත් එක්කම Zlib වගේ Compressing එකක් එක්ක, Send Receive වෙන Data Crypt කරන්න බලන්න, හොද knowledge එකක් එයි.

    :D
    e bn mn pereda TCPIP kale.ekatath thread ekak damma bn me vage :D
    TCP/UDP vala uba kiyana vidiyata packet kali ehe mehe yana programs vagayak thama bn mn me kale..
    samahara classes valin venne mokakda kiyala eka parata oluvata hariyatama vatenne na bn.vadiya hithanna giyama kachal ven ahindai thread ekak damme bn

    thanx machooo
     

    rock pora

    Well-known member
  • May 18, 2011
    11,951
    2,791
    113
    ###~.:::.සියනෑ කෝරළේ.::.~##
    උබ මට message එකක් එවලා ප්‍රශ්න වගයක් ඇහුවා නේ? මම හිතන්නේ මචන් ඊට වඩා ලේසියි basic කිව්වා නම්, ඊට පස්සේ ,oracle documentation එක බලන්න එතකොට ඔළුවට වැදෙයි , තවත් තේරුනේ නැත්නම් මගෙන් අහන්න.
    google search කරද්දි. oracle documentation <java method/class name> කියලා search කරන්න
    example
    oracle documentation getBytes()

    java වල හැම දෙයක්ම හැදිලා තියෙන්නේ classes වශයෙන්. class එකක් කියන්නේ කේක් එකක් හදන්න ගන්න recipe(වට්ටෝරු) එකක් වගේ. වට්ටෝරු වක තියෙන්නේ කේක් එකක් හදන විදියයි (ඕන කරන දේවල්, හදන විදිය වගේ) ඊට පස්සේ මේක follow කරලා කේක් එකක් හැදුවම ඒක හරියට object (කේක්) එකක් වගේ. එතකොට උබට මේ object ,use කරලා ඕන දෙයක් කරන්න පුලුවන් (කන්න, බොන්න, නාන්න, මූනේ ඇතුල්ලන්න).

    එතකොට
    වට්ටෝරුව -> class
    කේක් එක -> object

    java වල මේ classes (වට්ටෝරු) ,store වෙලා තියෙන්නේ package ඇතුලේ ,ඒක හරියට මේ වගේ. හිතන්න උබේ ළග තියෙනවා ලොකු cupboard එකක්. ඒකේ තියෙනවා පොඩි පොඩි රාක්ක. මේ රාක්ක වල තියෙනවා විවිධ වට්ටෝරු (recipe). එක රාක්කයක තියෙනවා කේක් හදන්න ගන්න වට්ටෝරු ,තව රාක්කයක තියෙනවා බිත්තර හදන්න ගන්න වට්ටෝරු ,තවත් රාක්කයක තියෙනවා පුඩ්ම් හදන්න ගන්න වට්ටෝරු. මේවා උබට use කරන්න ඕනේ නම් උබ කරන්නේ මොකක්ද? කාටහරි කියනවා අර cupboard එකේ පුඩිම් රාක්කයේ තියෙනවා අහවල් වට්ටෝරුව මට ගෙනත් දෙන්න කියලා, එහෙම නැත්නම් උබ කියනවා අර cupboard එකේ කේක් රාක්කයේ තියෙන වට්ටෝරු ඔක්කොම මට ගෙනත් දෙන්න කියලා.

    අර cupboard එකේ පුඩිම් රාක්කයේ තියෙනවා අහවල් වට්ටෝරුව මට ගෙනත් දෙන්න
    import java.graphics.Rectangle;
    (java කබඩ් එකේ, ග්‍රැෆික් රාක්කයේ තියෙන rectangle වට්ටෝරුව)

    අර cupboard එකේ කේක් රාක්කයේ තියෙන වට්ටෝරු ඔක්කොම මට ගෙනත් දෙන්න කියලා.
    import java.graphics.*
    (java කබඩ් එකේ ග්‍රැෆික් රාක්කයේ තියෙන ඔක්කොම වට්ටෝරු)

    ඊට පස්සේ class එහෙක තියෙනවා methods. method එකක් හරියට ,වට්ටෝරුවක තියෙන කරන්නට ඕන උපදෙස් වගේ.
    method එකක syntax (ගහන්න ඕන විදිය යන්නේ මේ විදියටයි)

    public double getAnswer(double oneVal,double twoVal) {
    return oneVal + twoVal
    }


    public කියන්නේ modifier එකයි, මේක හරියට මේ වගේ. උදාහරණයකට හිතන්න, උබ රාක්කයෙන් ගන්නවා වට්ටෝරුවක්. ඒකේ එක උපදෙසක් ලියලා තියෙන්නේ සංකේත වචන වලින් මොකද ලියපු එකාට ඕන ඒ උපදෙස හංගන්න එතකොට ඒක private නමුත් ලියපු උපදෙස හැමෝටම පේන්න තියෙනවා (සාමාන්‍යය අකුරු වලින්) නම් එතකොට ඒක public. හිතන්න public, toilet එකක් ගැන. එක public කියන්නේ හැමෝටම යන්න පුලුවන්, private කියන්නේ කොටසකට විතරයි යන්න පුලුවන්. උබේ ගෙදර private, නමුත් නගර සභාව public.

    double කියන්නේ return type එක. return කරනවා කිව්වේ මේ වගේ දෙයක්. උබ කොටස් වෙළද පොළට ගිහින් ආයෝජනය කරනවා රුපියල් 1000 ක් , ඊට පස්සේ උබට අන්තිමට ලැබෙනවා රුපියල් 10000 වගේ. එතකොට return කියන එකත් ඒ වගේ. උබ මොකක හරි මොනව හරි දැමම්ම ඒක process වෙලා යම් කිසි දෙයක් වෙලා උබට ලැබෙන එලය රදවන්නයි return එක තියෙන්නේ. මෙතන කියන්නේ ඒ එලයේ type එක. උදාහරණයට කිව්වොත් එලයේ type එකේ double නම් ඒකේ 2.22 (දශම) වගේ සංඛයා රදවන්න කරන්න පුලුවන් ,ඒක integer නම් උබට පුලුවන් පූර්න සංඛයා (2,4,5,6 වගේ) රදවන්න. උබට කොටස් වෙළද පොළෙන් 1000.60 උනත් ලැබෙන්න පුලුවන් නේ? කඩෙන් බඩු ගත්තම ශත ගනන් වුනත් ලැබෙනවා නේ? එතකොට එහෙම සංඛ්‍යා රදවන්න හොදම ක්‍රමය ඒ අගය double විදියට සදහන් කිරිමයි.

    ඊළග එක method එකේ නම. ඕනම එකකට නමක් තියෙන්න එපැයි නේ.

    ඊළ සෙට් එකට කියන්නේ parameter list එක කියලයි, එතනින් තමයි උබ method එකට ඕන දේවල් දෙන්නේ, කලින් උදහරණයේ වගේ නම් උබ කොටස් වෙළද පොලට දැම්ම 1000 යන්නේ ඒ හරහායි,
    ඒකෙත් type එකක් තියෙනවා. ඒ type එක හරියට උබ දාන මුදලේ type එකේ වගේ. උබ දැම්මොත් 1000 ක් ඒක, integer (පූර්ණ සංඛ්‍යා) උබ දැම්මොත් 1000.50 ඒක double (දශම සංඛ්‍යා).

    return oneVal + twoVal එක තමයි ඇතුලේ වෙන දේ, හරියට කොටස් වෙළද පොලේ ඇතුලේ වෙන දේ වගේ.
    මෙතනින් වෙන්නේ අගයන් දෙක එකතු වෙලා ,ඒකේ එලය return කරන එකයි, return කරනවා කිව්වේ උබට දෙන එකයි (උබ කොටස් වෙළද පොළට දානවා, කොටස් වෙළද පොලෙන් අන්තිමට උබට එලයක් දෙනවා)

    මේකෙන් තමයි අපි ඇතුලට values pass කරන්නේ ,method එකේ.
    getAnswer(1,2)

    ade mn uben ahuve meva nemeine bn :D
    apinm bn cake kanava vitharai,ade uba nannai,bonnai th gannavada bn :rofl:
    ela ela machoo,mata basic me tikanm awlak na bn
    basic vala Exception handling vala podi awlak thiyenava.eka hadaganna one


    1)meke client program eke,
    String responseMessage = new String(responseBuffer,0,responsePacket.getLength() );
    ai string clz ekata arry eka vitharak nathuva me okkoma yavanne??
    0 kiyanne mokadda bn meke??

    2) thava ara arry case eka
    byte[] replyBytes =reply.getBytes(); meke array eka declare karanne nathuva kelinma initialize karala thiyenava

    MihiCherub kivve ena okkoma array ekata gannava kiyalai,length ekak nathuva..eyata hariyatama theory eka mathaka nalu.uba dannavada bn meka hariyatama??

    thanx machoo
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,849
    1
    9,594
    113
    Gampaha

    MihiCherub කියලා තියෙන එක හරි :D උබ ජාවා කැ#යෙක්නෙ බං MihiCherub
    අද ඉදන් ජාවා අව්ලක් ආවොත් අහන්නෙ උබෙන් :P UDP Java Socket ගැන කිව්වා කියන්නෙ ඉතින් පොරක් තමයි :D

    මට සිද්ධිය තේරෙනවා, ඒත් ජාවා මෙලොව උට්ටක් මතක නැ, පාවිච්චියක්ම නැනෙ බං, මේ ලගදි Android app එකකුයි C# Program එකකුයි Socket වලින් Connect කරන්න ගිහින් Buffer වල match වෙන්නෙ නැ ති කේස් එකක් ඇවිත් Delete කරා Project එකම, Andoroid RAT එකක් අපරදෙ අයෙ පටන් ගන්න ඕන.

    rock pora උබට Sockets එක්ක වැඩ කරන්න කලින් TCP / UDP Protocol ගැනයි ඔය පැකට් කැලි එහෙ මෙහෙ යන හැටියි.
    පැකට් එකක් යන්නෙ කොහෙන්ද, මොනා අස්සෙන්ද කියලා පොඩ්ඩක් ඔලුවට දාගනින්. එත්කොට ඔය වැඩේ ලේසියි ගොඩක්,

    Multi-threading, Multi-Port listening එක්ක වැඩ කරා කියන්නෙ ඉතින් හොද දැනුමක් එනවා මචො.

    ඒත් එක්කම Zlib වගේ Compressing එකක් එක්ක, Send Receive වෙන Data Crypt කරන්න බලන්න, හොද knowledge එකක් එයි.
    ඒ තරම් දන්නෙ නෑ බන්. අමාරු ඒව අහල මාව ලිදේ දාපන්කො පුලුවන් නම්.. :dull: මේව කලින් ඉගෙන ගත්තුව නෙමේ.. ඕනෙ වෙනකොට google කරල ගත්තුව. ;) මගේ මතේ නම් තියරි ඔක්කෝම පස්සෙ එලවන එක තේරුමක් නෑ.. මොකද ඔක්කොම ඉගෙන ගෙන ඉවර කරන්න බෑ.. බේසික් ටික හොදට තේරුම් ගත්ත නම් හොදටම ඇති, එතන ඉදන් යෙදෙන, උවමනා වෙන විදියට ඉගෙන ගන්න ගමන්, වැඩේ කරගන්න තමා තියෙන්නෙ.
    කොහොමත් උබට, ඉබ්බට, errorserver, network එක්ක වැඩකරල පුරුද්ද වැඩී මට වවා. මම ඒව එක්ක වැඩ කරලම නැති තරම්.. :yes: