Create Simple TCP / IP Client Application with Java

This some coding sample to creating socket connection in Java. This simple application will be sending message through TCP/IP connection and wait for response from server.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;

/**
 *
 * @author Erwin
 */
public class SendMessage {

    public static void main(String[] args) {

        try {
            int port = 14000;

            // Create Socket address for configuring socket configuration
            SocketAddress sockaddr = new InetSocketAddress("127.0.0.1", port);

            // Create socket Object
            Socket sock = new Socket();

            // if timeout is reached and no response is received, it will throw socket exception
            int timeoutMs = 2000;   // in milliseconds

            // Initiate socket connection to server
            sock.connect(sockaddr, timeoutMs);
            try {
                
                // Create Buffered Writer object to write String or Byte to socket output stream
                BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
                String command = "Start Module";
                wr.write(command);
                System.out.println("Send String : "+command);
                
                // Flushing the writer
                wr.flush();

            } catch (IOException e) {
                e.printStackTrace();
            }

            try {
                BufferedReader rd = new BufferedReader(new InputStreamReader(sock.getInputStream()));
                String str;
                while ((str = rd.readLine()) != null) {
                    System.out.println(str);
                }
                rd.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            
            // Close socket connection after finish receiving a response
            sock.close();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (SocketTimeoutException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Hope this will be helpfull. Regards, Erwin Lin

How to create simple mail client with Java

On this article, I will post some code for making simple mail client application with java to sending e-mail via gmail mail server.

Here some coding example that I make :

I use JavaMail API from oracle
http://www.oracle.com/technetwork/java/javamail/index-138643.html

import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class SimpleEMailSenderClient {

public static void main(String args[]) {
try {

// Initiate Properties object for configuring the mail client
Properties prop = new Properties();
prop.put("mail.smtp.host", "smtp.gmail.com");
//prop.put("mail.smtp.host", "66.249.93.109");
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.port", "465");
prop.put("mail.smtp.socketFactory.port", 465);
prop.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.put("mail.smtp.socketFactory.fallback", "false");

// Create a new javax.mail.Session object
Session session = Session.getDefaultInstance(prop, new Authenticator() {

// Override method to Authanticate to mail server
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("testmail@gmail.com", "testtest");
}
});

// setDebug method fill with Boolean true that will dump trace log of Session Object to console.
session.setDebug(true);

// Initiate MimeMessage for configuring e-mail detail
MimeMessage Msg = new MimeMessage(session);

// setFrom() method is for filling the "From" field in email.
Msg.setFrom(new InternetAddress("testmail@gmail.com"));

// setRecipient() method is for filling the "to, cc, or bcc" in email. 
// The first parameter value cab be RecipientType.TO, RecipientType.CC, or Recipient Type.BCC
Msg.setRecipient(RecipientType.TO, new InternetAddress("testing@mymaildomain.com"));

// setSubject() method is for filling the "Subject" field in email.
Msg.setSubject("Message Subject");

// setSentDate() method is to inform the recipient when the mail was sent.
Msg.setSentDate(new Date());

// Initiate MimeBodyPart for filling email content
MimeBodyPart messagePart = new MimeBodyPart();
messagePart.setText("Message Content");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messagePart);
Msg.setContent(multipart);

// Email Sending process
Transport.send(Msg);

// Handle whenever error is occur
} catch (MessagingException e) {
e.printStackTrace();
}
}
}

Hope this post can be helpfull.

Regards,

Erwin Lin

Software yang wajib terinstall di ms windows anda

Berikut adalah list software yang selalu terinstall setiap saya melakukan instalasi windows secara general, bukan untuk developer / programmer dan juga bisa didapatkan dengan gratis :

WinRAR
Software ini berfungsi untuk mengcompress file dan juga membuka file yang terkompres, sangat berguna saat pertama kali menginstall windows karena software ini dibutuhkan bila installer file lainnya dalam keadaan terkompres karena keterbatasan space hardisk.
WinRAR menurut saya lebih enak untuk dipakai daripada WinZip.

CCLeaner
Software ini berfungsi untuk membersihkan registry – registry tidak terpakai dan membuang file – file yang tidak terpakai serta history – history browsing anda. Sangat berguna bila komputer anda dirasakan sudah lambat performance nya.
Software ini sangat simple sehingga saya menyukainya.

Mozilla Firefox
Ini adalah browser utama pada setiap PC karena sangat cepat dan mudah untuk digunakan serta tampilan yang bagus dan bisa menampilkan game – game facebook dengan sempurna.

Google Chrome
Ini bisa jadi browser kedua, menurut opini saya pribadi, browser ini bekerja lebih cepat daripada mozilla firefox dan tampilannya jauh lebih simple. tetapi menurut saya ada beberapa game facebook yang tidak bisa ditampilkan secara benar oleh browser ini, mungkin pada update – update selanjutnya akan diperbaiki oleh pihak google.

AIMP2
Ini adalah pengganti winamp yang wajib terinstall bagi anda yang suka mendengarkan mp3 sambil bekerja. Saya lebih menyukai AIMP2 daripada winamp karena bisa langsung melakukan transfer file ke USB tanpa menggunakan plugin tambahan dan juga tampilan nya lebih menarik daripada winamp dan menurut saya lebih cepat.

K-Lite Codec Pack
Bagi anda yang suka menikmati film di komputer, mungkin ini merupakan salah software wajib karena untuk bisa memutar beberapa format file movie dibutuhkan codec ini. Player yang digunakan oleh codec ini adalah Windows Media Player Classic, sangat mudah untuk digunakan dan lebih praktis daripada Windows Media Player default dari windows.

VLC Player
Terkadang ada beberapa file video yang tidak bisa dijalankan pada Windows Media Player, tetapi hanya menampilkan layar berwarna hijau saja, maka bisa digunakan VLC Player sebagai penggantinya karena hampir bisa digunakan untuk memutar semua jenis file video.

uTorrent
Ini adalah untuk anda yang senang untuk mendownload file – file besar berbasis torrent yang biasanya berukuran sangat besar. Sangat mudah untuk digunakan oleh pemula skalipun.

Yahoo Messenger
Yahoo adalah provider chatting paling populer di indonesia sehingga orang lebih banyak menggunakan YahooMessenger dibandingkan dengan WindowsLiveMessenger, GoogleTalk, AOL, dan lain – lain.
Ada beberapa 3rd party software juga yang bisa connect ke server Yahoo Messenger seperti Digsby, Trillian, dan lain – lain. Bahkan sekarang Yahoo Messenger juga sudah bisa connect ke server chat facebook dan juga twitter.

Ada software – software lain juga yang mungkin berguna juga seperti Microsoft Office, Adobe Photoshop tapi saya sampai sekarang masih belum menemukan penggantinya yang bisa digunakan secara gratis. OpenOffice masih belum bisa menggantikan Microsoft Office secara sempurna.

Ini hanyalah opini saya saja, semoga berguna.

Regards,

Wind

Real Hello World in Java

post pertama tentang bahasa pemrograman favorit gw yaitu Java ^^
simple hello world nih, bisa dibikin di IDE manapun, gw sih biasa ngoding Java slalu pake NetBeans 6, tp skrg lg pengen juga blajar pake Eclipse soalnya kliatannya lebih mudah integrasi dengan berbagai macam application server dan lebih ringan juga. Dulu pake netbeans gara2 sering berkutat di Swing jadi perlu banget pake fasilitas drag n drop nya, klo di eclipse belum nemuin plugin swing drag n drop yang cocok sih :p
eniwey ini kodenya :

/**
* statement ini adalah deklarasi kelas dalam java di mana "HelloWorld" adalah nama kelasnya dan harus sama dengan nama file source nya yang mempunyai ekstensi .java
*/
Public class HelloWorld {

    /**
     * "main" adalah method utama untuk menjalankan sbuah program java
     *  args adalah array parameter yang bertipe string dan bisa dimasukkan saat menjalankan program java.
     */
    Public static void main (String [] args) {

        /**
         * berikut adalah cara pendeklarasian variabel dalam java dimana variabel hello diisi oleh String yang berisi "Hello World".
         */
         String hello = "Hello World";

        /**
         * ini adalah perintah untuk menampilkan tulisan dalam hal ini adalah isi dari variabel hello ke console
         */
         System.out.println(hello);

    }
}