网络编程Practices

1: Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?

 

Server

public class Server {
    private ServerSocket ss;
    private Socket socket;
    private BufferedReader in;
    private PrintWriter out;

    public Server() {
        try {
            ss = new ServerSocket(10000);
            while (true) {
                socket = ss.accept();
                String RemoteIP = socket.getInetAddress().getHostAddress();
                String RemotePort = ":" + socket.getLocalPort();
                System.out.println("A client come in!IP:" + RemoteIP + RemotePort);
                in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                String line = in.readLine();
                System.out.println("Cleint send is :" + line);
                out = new PrintWriter(socket.getOutputStream(), true);
                out.println("Your Message Received!");
                out.close();
                in.close();
                socket.close();
            }
        } catch (IOException e) {
            out.println("wrong");
        }
    }
View Code

 

Client

public class Client {
    Socket socket;
    BufferedReader in;
    PrintWriter out;

    public Client() {
        try {
            System.out.println("Try to Connect to 127.0.0.1:10000");
            socket = new Socket("127.0.0.1", 10000);
            System.out.println("The Server Connected!");
            System.out.println("Please enter some Character:");
            BufferedReader line = new BufferedReader(new InputStreamReader(System.in));
            out = new PrintWriter(socket.getOutputStream(), true);
            out.println(line.readLine());
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            System.out.println(in.readLine());
            out.close();
            in.close();
            socket.close();
        } catch (IOException e) {
            out.println("Wrong");
        }
    }

    public static void main(String[] args) {
        new Client();
    }
};
View Code

 

 

2: 编写一个服务器和一个客户端

1)服务器可以读取本地文件内容并能将内容发给请求的客户端
2)再编写一个可以发请求到服务器,并能从服务器段获取文件内容的客户端

 

    @Test
    public void TcpTestOneClient(){

        Socket socket = null;
        InputStream is = null;  // 获取服务端信息
//        ByteArrayOutputStream bos = null;
        FileOutputStream fos = null;
        try {
            socket = new Socket("127.0.0.1",1001);
            is = socket.getInputStream();
            int len;
            byte [] bytes = new byte[5];
//            bos = new ByteArrayOutputStream();
            fos = new FileOutputStream("a.TcpOne.jpg");
            while ((len = is.read(bytes)) != -1){
//                bos.write(bytes,0,len);
                fos.write(bytes,0,len);
            }
//            System.out.println(bos.toString());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(socket != null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            if(is != null){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            if(fos != null){
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

//            if(bos != null){
//                try {
//                    bos.close();
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//            }
        }
    }

    @Test
    public void TcpTestOneServer(){
        ServerSocket serverSocket = null;
        Socket socket = null;
        OutputStream os = null;
        FileInputStream fis = null;
        try {
            serverSocket = new ServerSocket(1001);
            socket = serverSocket.accept();
            os = socket.getOutputStream();
            int len;
            byte [] bytes = new byte[1024];
            fis = new FileInputStream(new File("a.jpg"));
            while ((len = fis.read(bytes)) != -1){
                os.write(bytes,0,len);
//                os.write("老王我给你发了一个图片  你好好欣赏啊".getBytes());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(serverSocket != null){
                try {
                    serverSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            if(socket != null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            if(os != null){
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            if(fis != null){
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
服务端向客户端发送文件

 

 

3: 编写一个简单的浏览器

1)将第一题的服务器做调整,如果客户端传输字符串: GET HTTP1.0  /index.jsp, 服务器会将指定目录(路径)下的index.jsp文件传输到客户端
2)客户端可以发请求和把上面的文件保存到本机的制定目录下

 

4: 编写一个服务器和一个客户端

1)服务器上保存了几个用户名和对应的密码;且能验证客户端发送过来的用户名和密码,是否和保存的某个用户名和对应的密码一致.
2)客户端能连接到服务器,并把用户在键盘上输入的用户名和密码,发送到服务器上

 

 

5:编写一个ATM服务器和一个客户端,可以通过客户端输入帐号,密码,然后利用服务器端验证,且能实现ATM存钱,取钱和修改密码的功能将上面的题目结合JDBC实现模拟银行的功能。(后面讲jdbc)

网络编程
1)    用网络编程编写一个服务端
2)    编写一个客户端,客户端向服务端发送一条信息
3)    服务端在这条信息前面加上“服务端:”后再返给客户端输出。

 

6: 网络聊天功能(50分)

1)    用网络编程编写一个服务端
2)    编写一个客户端,客户端向服务端发送一条信息
3)    服务端在这条信息前面加上“服务端:”后再返给客户端输出。
网络聊天功能(50分)
1)    用网络编程编写一个服务端(5分)
2)    用网络编写一个客户端(5分)
3)    客户端输入 client,服务端响应 I'SERVER!(40分)
实现服务器端和客户端的单线通话(50分)
1)    实例化一个服务器端(10分)
2)    实例化一个客户端(10分)
3)    服务器端和客户端相连接(10分)
4)    一旦服务器端接收到客户端的连接,服务器端就向客户端输出“welcom”(20分)

 

TCP/IP通信协议和IO

1)   实例化一个服务端(10分)

2)   实例化一个客户端,客户端可以向服务端发送一条信息(10分)

3)   用IO向D盘下面创建temp.txt文件(10分)

4)   服务端把接收到客户端的信息写到temp.txt文件中(20分)

 

 

.

posted @ 2020-07-06 18:41  可爱的红领巾  阅读(378)  评论(0编辑  收藏  举报