Cấp bậc tác giả:

JAVA

Server sẽ trả lại tương ứng(tùy theo số nhận được). Dùng giao thức TCP/IP

Được viết bởi QuangIT ngày 15/09/2012 lúc 05:24 PM
Tạo ra hai ứng dụng độc lập (một client và một server). Client chấp nhận một trong các số sau: 1, 2, 3. Số này sẽ được gửi đến server. Server sẽ trả lại tương ứng : “ONE” hoặc “TWO” hoặc “THREE” (tùy theo số nhận được). Dùng giao thức TCP/IP
  • 0
  • 1569

Server sẽ trả lại tương ứng(tùy theo số nhận được). Dùng giao thức TCP/IP


Đề bài: Tạo ra hai ứng dụng độc lập (một client và một server). Client chấp nhận một trong các số sau: 1, 2, 3. Số này sẽ được gửi đến server. Server sẽ trả lại tương ứng : “ONE” hoặc “TWO” hoặc “THREE” (tùy theo số nhận được). Dùng giao thức TCP/IP


Chức năng chương trình:

-         Client gửi số bất kì đến SERVER

-         Nếu là số 1,2,3 thì trả về ONE,TWO,THREE, các trường hợp còn lại trả về UNKNOWN

Cơ chế:

-         SERVER mở cổng để client truy xuất đến

-         Tạo các luồng nhập xuất khi có client truy cập đến (cả client và SERVER), lúc này client và server có thể gửi thông tin qua lại lẫn nhau

-         Client truy cập vào, sau đó gửi thông tin đến server

-         Server nhận được thông tin, rồi xử lí, sau đó gửi trả lại client

-         Client hiển thị thông tin mà server đã trả về

Các lớp và chức năng các lớp:

NumberTCPSimpleServer

-         Lớp này có phương thức go(), chức năng của nó:

o   Mở cổng của server, tạo kết nối mỗi khi có client kết nối

o   Chờ nhận dữ liệu từ Client gửi lên

o   Xử lí dữ liệu

o   Trả về client

-         Phương thức main của lớp này tạo ra đối tượng thuộc lớp NumberTCPSimpleServer, sau đó gọi phương thức go() của lớp này

NumberTCPSimpleClient

-         Phương thức khởi tạo của lớp này có đối số là chuỗi về địa chỉ của server

-         Phương thức go():

o   Tạo kết nối đến địa chỉ và số hiệu cổng của server

o   Tạo các luồng nhập xuất liên kết với server

o   Đưa dữ liệu cần gửi hoặc nhận vào các luồng này

o   Gửi dữ liệu đến server

o   Nhận dữ liệu (sau khi server đã xử lí) rồi hiển thị lên màn hình

Kết quả:

SERVER



Client

 

NumberTCPSimpleServer

 import java.io.*;
import java.net.*;
class NumberTCPSimpleServer{
    private ServerSocket sSoc;
    public static final int PORT = 8000;public static void main(String args[]){
        NumberTCPSimpleServer server = new NumberTCPSimpleServer();
        try    {
            server.go();
        }
        catch(IOException e){
            e.printStackTrace();        }
        catch(ClassNotFoundException e){
            e.printStackTrace();        }
    }
    public void go() throws IOException, ClassNotFoundException{
        Socket soc = null;
        sSoc = new ServerSocket(PORT);
        while(true)
        {
            //creating a Socket
            System.out.println("Server is waitting...");
            soc = sSoc.accept();
            System.out.println("A Socket was instantiated");
            //creating an OutputStream object
            OutputStream os = soc.getOutputStream();
            //creating an ObjectOutputStream object
            ObjectOutputStream oos = new ObjectOutputStream(os);
            //creating an InputStream object
            InputStream is = soc.getInputStream();
            //creating an ObjectOutputStream object
            ObjectInputStream ois = new ObjectInputStream(is);
            String received = (String)ois.readObject();
            String returned = null;
            if(received.equals("1")){
                returned = "ONE";
            }
            else{
                if(received.equals("2")){
                    returned = "TWO";        }
                else{
                    if(received.equals("3"))    {
                        returned = "THREE";    }
                    else
                    {
                        returned = "UNKNOWN";    }
                }
            }
            oos.writeObject(returned);
            ois.close();
            oos.close();
            soc.close();
        }
    }
}

NumberTCPSimpleClient

import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket;
//import java.util.Scanner;
class NumberTCPSimpleClient{
    public static final int DT_PORT = 8000;
        String hostName;
        Socket soc;
        public static void main(String args[]){
            NumberTCPSimpleClient client = new NumberTCPSimpleClient("localhost");
            try{
                
                //System.out.print("run: ");
                //Scanner input =new Scanner(System.in);
                //String i = input.nextLine();
                //sendData = i.getBytes();
                //client.go(i);
                client.go("1");
                client.go("2");
                client.go("3");
                client.go("4");
            }
            catch(IOException e){
                e.printStackTrace();
            }
            catch(ClassNotFoundException e){
                e.printStackTrace();
            }
        }
        public NumberTCPSimpleClient(String hostString){
            this.hostName = hostString;
        }
        public void go(String str) throws IOException, ClassNotFoundException{
            soc = new Socket(hostName, DT_PORT);
            //creating an InputStream that will be connected to soc
            InputStream is = soc.getInputStream();
            //creating ObjectInputStream
            ObjectInputStream ois = new ObjectInputStream(is);
            //creating an OutputStream that will be connected to soc
            OutputStream os = soc.getOutputStream();
            //creating ObjectOutputStream
            ObjectOutputStream oos = new ObjectOutputStream(os);
            //sending data to server
            oos.writeObject(str);
            System.out.println(str+" was sent");
            //receiving data from server
            String temp = (String)ois.readObject();
            System.out.println(temp + " was received");
            oos.close();
            ois.close();
            soc.close();
        }
    }

Nguồn bài viết: Dngaz.com

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML