5/9/12

Viết chương trình theo mô hình Client - Server: Nhập 0-9 xuất chữ

Viết chương trình theo mô hình Client - Server sử dụng Socket ở chế độ có nối kết. Trong đó:
- Server làm nhiệm vụ đọc một ký tự từ '0' đến '9' (ví dụ: nhận số 0 trả về 'không, 1 trả về 'một'' ...... 9 trả về 'chín', nếu nhận ký tự khác số thì trả về: "Không phải số nguyên")
- Client nhập vào 1 ký tự, gửi qua Server, nhận kết quả trả về từ Server và hiển thị lên màn hình

NumberServer
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
*
* @author QuangIT
*/
public class NumberServer {

/**
* @param args the command line arguments
*/
private static ServerSocket serverSocket = null;
public static void main(String[] args) throws IOException{
// TODO code application logic here

    DataOutputStream dos = null;
    DataInputStream dis=null;
    try {
        serverSocket = new ServerSocket(8000);
        System.out.print("Server đã được mở \n" );
        Socket clientSocket = null;
        clientSocket = serverSocket.accept();
        dos=new DataOutputStream(clientSocket.getOutputStream());
        dis=new DataInputStream(clientSocket.getInputStream());
        String inline="";
        while(true)
        {
            inline = dis.readUTF();
            char ch[]=inline.toCharArray();
            if(Character.isDigit(ch[0]))
                {
                int i=Integer.parseInt(inline);
                switch(i)
                {
                    case 0:inline="Không";break;
                    case 1:inline="Một";break;
                    case 2:inline="Hai";break;
                    case 3:inline="Ba";break;
                    case 4:inline="Bốn";break;
                    case 5:inline="Năm";break;
                    case 6:inline="Sáu";break;
                    case 7:inline="Bảy";break;
                    case 8:inline="Tám";break;
                    case 9:inline="Chín";break;
                }
                dos.writeUTF(inline);
            }
            else
                dos.writeUTF("Không phải số nguyên");
        }
    }
    catch(Exception e) {
        dos.close();
        serverSocket.close();
        dis.close();
        System.out.print(e.getMessage());
    }
}

NumberClient
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;


/**
*
* @author QuangIT
*/
public class NumberClient
{

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) throws IOException
    {
    // TODO code application logic here
   
        Socket mySocket = null;
        DataOutputStream dos = null;
        DataInputStream dis=null;
       
        try {
            mySocket = new Socket("localhost", 8000);
            dos = new DataOutputStream(mySocket.getOutputStream());
            dis = new DataInputStream(mySocket.getInputStream());
            Scanner input = new Scanner(System.in);
            String s = null;
            while(true)
            {
                System.out.print("\nNhap du lieu: ");
                s =input.nextLine();
                dos.writeUTF(s);
               
                String str=dis.readUTF();
                System.out.print("Kết quả từ Server : "+str);
            }
        }
        catch(Exception e) {
            System.out.print("Ngat ket noi");
            dis.close();
            dos.close();
            mySocket.close();
            e.printStackTrace();
        }
    }
}
Bookmark and Share

0 comments:

Post a Comment

Next previous home

Cộng đồng yêu thiết kế Việt Nam Thiet ke website, danang