itdogs

I am IT dogs

用户操作
[即时聊天] [发私信] [加为好友]
itdogs
itdogs的公告
最近评论
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 Using Sockets in Java - Client收藏

      新一篇: Using Sockets in Java - Server | 旧一篇: Toggle the Multi Monitor Setting in Windows XP

      Introduction

      In this article I will demonstrate how to create a client program using Java, this article is the continuation of the previous article that I have write about creating a server program.To understand this article I recommand that you have already read the first one :(JavaSockets.aspx)

      Using the code

      The code is almost similar with the server code, to create a client you need to follow only four steps :

      1.Establish a connection to server

      2.Set up input and output streams

      3.Send and receive data

      4.Close the connection

      Let's take the first step :

      1.We have to create a Socket object, supplying its constructor with the following arguments:

      • the server's IP address (this is InetAddress)
      • the appropiate port number for the service

      The port number for server and client programs must be the same, of course !

      To be more easy we will place the client and the server on the same host, which will alow us to retrieve the IP address by calling static methid getLocalHost of class InetAddress.

               Socket link = new Socket(InetAddress.getLocalHost(), 1234);          
      

      2.These are set up in exactly the same way as the server streams were set up (by calling methods getInputStream and getOutputStream of the Socket object that was created in step 2 in the previous article (JavaSockets.aspx).

      3.The Scanner object at the client end will receive messages sent by the PrintWriter object at the server end, while the PrintWriter object at the client end will send messages that are received by the Scanner object at the server end(using method nextLine and println).

      4.This is exactly the same as for the server process :

          link.close();
      

       

      Entire code

      Collapse
      import java.io.*;
      import java.net.*;
      import java.util.*;
      
      public class TCPEchoClient
      {
          private static InetAddress host;
          private static final int PORT = 1234;
      
          public static void main(String[] args)
          {
              try
              {
                  host = InetAddress.getLocalHost();
              }
              catch(UnknownHostException uhEx)
              {
                  System.out.println("Host ID not found!");
                  System.exit(1);
              }
              accessServer();
          }
      
          private static void accessServer()
          {
              Socket link = null;                        //Step 1.
      
              try
              {
                  link = new Socket(host,PORT);        //Step 1.
      
                  Scanner input = new Scanner(link.getInputStream());//Step 2.
      
                  PrintWriter output =
                      new PrintWriter(link.getOutputStream(),true);//Step 2.
      
                  //Set up stream for keyboard entry...
                  Scanner userEntry = new Scanner(System.in);
      
                  String message, response;
                  do
                  {
                      System.out.print("Enter message: ");
                      message =  userEntry.nextLine();
                      output.println(message);         //Step 3.
                      response = input.nextLine();    //Step 3.
                      System.out.println("\nSERVER> " + response);
                  }while (!message.equals("***CLOSE***"));
              }
              catch(IOException ioEx)
              {
                  ioEx.printStackTrace();
              }
      
              finally
              {
                  try
                  {
                      System.out.println("\n* Closing connection... *");
                      link.close();                    //Step 4.
                  }
                  catch(IOException ioEx)
                  {
                      System.out.println("Unable to disconnect!");
                      System.exit(1);
                  }
              }
          }
      }
       
      For more information or for any kind of clarification please don't hesitate to contact me : mihailescu.marius@yahoo.com, until then I wish you all a HAPPY CODING

      License

      This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

      发表于 @ 2008年04月25日 02:11:53|评论(loading...)|编辑

      新一篇: Using Sockets in Java - Server | 旧一篇: Toggle the Multi Monitor Setting in Windows XP

      评论:没有评论。

      发表评论  


      登录
      Csdn Blog version 3.1a
      Copyright © itdogs