***** Programmer *****

Học lập trình từ căn bản

Tìm kiếm
 
 

Display results as :
 


Rechercher Advanced Search

Latest topics
» Tuyên mộ thành viên
Wed Oct 24, 2012 5:28 am by quangvuspkt

» Bai tap Java can ban (Phan III )
Sat Sep 15, 2012 4:11 am by tsuyngam

» Bai tap Java can ban (Phan I )
Sat Sep 15, 2012 4:08 am by tsuyngam

» Một số bài tập C# căn bản
Thu Dec 15, 2011 1:58 pm by nguyenhoduykhang

» Xem thông tin máy tính bằng c#
Tue Nov 08, 2011 8:19 am by namcongtu288

» My First Browser Tree Program in VB.NET
Fri Aug 12, 2011 5:50 pm by kimthaohg85

» Giúp em bài C++ này với
Sun Jul 31, 2011 12:19 pm by kubin

» GIUP DO XAY DUNG BO GO TIENG VIET CODE C#
Sun Jul 24, 2011 8:40 pm by phonui82

» CHÀO TẤT CẢ CÁC THÀNH VIÊN TRONG DIỄN ĐÀN
Tue Jul 19, 2011 9:28 am by phonui82

Đăng Nhập

Quên mật khẩu



August 2017
MonTueWedThuFriSatSun
 123456
78910111213
14151617181920
21222324252627
28293031   

Calendar Calendar


You are not connected. Please login or register

Bài tập lập trình Client / Server (Phần 1)+ có lời giải

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

Phần 1 : Client / Server :


Lập trình Client / Server với yêu cầu sau:
Trên máy Server :
- Lắng nghe cổng 1234
- Nếu Client kết nối vào cổng 1234 và gửi 1 chuối kí tự vào thì sẽ trả về kết quả là chuối được đảo thứ tự.
VD: Client gửi Hello thì kết quả trả về là olleH

Trên máy Client :

Kết nối vào Server qua cổng 1234 và gửi chuối kí tự đến server
Nhận kết quả là chuỗi đảo ngược


Bài chứ nè :

Code:
a. Chương trình trên máy chủ: ReverServerApp.java

import java.lang.System;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.IOException;
import java.io.DataInputStream;
import java.io.DataOutputStream;
public class ReverServerApp{
    public static void main(String args[]){
        try{
            ServerSocket server=new ServerSocket(1234);
            int localPort=server.getLocalPort();
            System.out.println("Reverse Server is listening on port "+localPort+".");
            Socket client=server.accept();
            String destName=client.getInetAddress().getHostName();
            int destPort=client.getPort();
            System.out.println("Accepted connection to "+destName+" on port "+destPort+".");
            DataInputStream inStream=new DataInputStream(client.getInputStream());
            DataOutputStream outStream=new DataOutputStream(client.getOutputStream());
            boolean finished=false;
            do{
              String inLine=inStream.readLine();
              System.out.println("Receive "+inLine);
              if(inLine.equalsIgnoreCase("quit"))
                  finished=true;
              String outLine=new ReverseString(inLine.trim()).getString();
              for(int i=0;i<outLine.length();++i)
                  outStream.write((byte)outLine.charAt(i));
              outStream.write(13);
              outStream.write(10);
              outStream.flush();
              System.out.println("Sent: "+outLine);
            }while(!finished);
            inStream.close();
            outStream.close();
            client.close();
            server.close();
        }catch(IOException ex){
            System.out.println("IOException occurred.");
        }
    }
}
class ReverseString{
    String s;
    public ReverseString(String in){
        int len=in.length();
        char outChars[]=new char[len];
        for(int i=0;i<len;++i)
            outChars[len-1-i]=in.charAt(i);
        s=String.valueOf(outChars);
    }
    public String getString(){
        return s;
    }
}













b. CHương trình trên máy khách :

PortTalkApp.java

import java.lang.System;
import java.net.Socket;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.*;

public class PortTalkApp{
    public static void main(String args[]){
        portTalk portTalk=new portTalk(args);
        portTalk.displayDestinationParameters();
        portTalk.displayLocalParameters();
        portTalk.chat();
        portTalk.shutdown();
    }
}
class portTalk{
    Socket connection;
    DataOutputStream outStream;
    DataInputStream inStream;
    public portTalk(String args[]){
        if(args.length!=2) error("Usage: java PortTalkApp host port");
        String destination=args[0];
        int port=0;
        try{
            port=Integer.valueOf(args[1]).intValue();
            }catch(NumberFormatException ex){ error("Invalid port Number");}
        try{
            connection=new Socket(destination,port);
        }catch(UnknownHostException ex) {error("Unknown Host");}
      catch(IOException ex) {error("Invalid port Number");}
        try{
            inStream=new DataInputStream(connection.getInputStream());
            outStream=new DataOutputStream(connection.getOutputStream());
        }catch(IOException ex) {error("IO error getting streams");}
        System.out.println("Connected to "+destination+" at "+port+".");
    }
    public void displayDestinationParameters(){
        InetAddress destAddress=connection.getInetAddress();
        String name=destAddress.getHostName();
        byte ipAddress[]=destAddress.getAddress();
        int port=connection.getPort();
        displayParameters("Destination ",name,ipAddress,port);
    }
    public void displayLocalParameters(){
        InetAddress localAddress=null;
        try{
            localAddress=InetAddress.getLocalHost();
        }catch(UnknownHostException ex) {error("Error getting local Host information");}
        String name= localAddress.getHostName();
        byte ipAddress[]=localAddress.getAddress();
        int port=connection.getLocalPort();
        displayParameters("Local ",name,ipAddress,port);
    }
    public void displayParameters(String s,String name,byte ipAddress[],int port){
        System.out.println(s+" host is "+name+".");
        System.out.println(s+" IP Address is ");
        for(int i=0;i<ipAddress.length;++i)
            System.out.print((ipAddress[i]+256)%256+".");
        System.out.println();
        System.out.println(s+" port Number is "+port+".");
    }
    public void chat(){
        DataInputStream keyboardInput=new DataInputStream(System.in);
        boolean finished=false;
        do{
            try{
            System.out.print("Send, receive, or quit (S/R/Q: ");
            System.out.flush();
            String line=keyboardInput.readLine();
            if(line.length()>0){
                line=line.toUpperCase();
                switch(line.charAt(0)){
                    case 'S':
                        String sendLine=keyboardInput.readLine();
                        outStream.writeBytes(sendLine);
                        outStream.write(13);
                        outStream.write(10);
                        outStream.flush();
                        break;
                    case 'R':
                        int inByte;
                        System.out.println("***");
                        while((inByte=inStream.read())!='\n')
                            System.out.write(inByte);
                        System.out.println();
                        break;
                    case 'Q':
                        finished=true;
                        break;
                    default:
                        break;
                    }
                }
            }catch(IOException ex) {error("Error reading from keyboard or socket");}
        }while(!finished);
    }
    public void shutdown(){
        try{
            connection.close();
        }catch(IOException ex) {error("IO error closing socket");}
    }
    public void error(String s){
        System.out.println(s);
        System.exit(1);
    }
}

Xem lý lịch thành viên

Tesulakata

avatar
Thành viên
Thành viên
ac ac
ai thấy bài máy trạm mới ở đâu ko nhi?

Xem lý lịch thành viên http://programmer.4umer.com

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết