夜光 带你走进 Java基础编程实战(十九 网络编程)

夜光序言:

 

嗯,如果有天我离开了,

不是你弄丢了我,

不是我走丢了,

而是我终于有勇气离开你了。

你好好保重身体,再见

 

夜光 带你走进 Java基础编程实战(十九 网络编程)

夜光 带你走进 Java基础编程实战(十九 网络编程)

正文:

夜光 带你走进 Java基础编程实战(十九 网络编程)

package com.Genius.TcpIp;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

/*夜光:我目前做项目,主要还是涉及的通讯这一块
主要就是掌握网络编程*/


public class Demo01 {
         //Tcp协议使用重发技术和拥塞机制
    //向应用程序提供了一个可靠的通信连接
    // 可以使应用程序自动去适应网络上的各种变化
    

    public static void main(String[] args) {
        try{  
            Server server = new Server(8080);  //夜光:传入端口号实例化对象
            
        }catch(Exception e){
            System.out.println("测试服务器监听出错"+e.getMessage());
        }
    }
    
}


class Server{   //夜光:Socket服务器端
    private int port;   // 端口
    
    public Server(int port)
    {
        this.port = port;
        start();
    }
    
    public String infoUpperCase(String line)
    {
        return line.toUpperCase();
    }
    
    
    
    private void start() {  //启动服务器端
        // 网络编程~~
        try{
            //根据端口创建服务器端Socket对象
            ServerSocket serverSocket =
                    new ServerSocket(port);
            //显示连接信息
            System.out.println("服务器端已经open,监听端口号为:"+port);
            System.out.println("正在等待客户端连接~~~");
            
            //夜光:挂起等待客户的请求~~
            Socket socketAccept = 
                    serverSocket.accept();
            BufferedReader in = new BufferedReader(new
                    InputStreamReader(socketAccept.getInputStream()));
            //以上获取客户端的数据流
            PrintWriter out = new PrintWriter(
                    socketAccept.getOutputStream(),
                    true);
            out.println("服务器连接成功~~~~~");
            //夜光:向客户发送连接信息~~
            out.println("输入quit断开与服务器的连接~~");
            boolean done = false;
            while(!done){
                String line = in.readLine();
                //夜光:读取客户端每行的内容
                if(line == null){
                    done = true;
                }else{
                    //夜光:显示客户端发送的内容
                    System.out.println("来自客户端的消息:"+line);
                    //夜光:信息处理
                    String message = infoUpperCase(line);
                    //夜光:向客户端发送信息
                    out.println("来自服务器端的信息:"+message);
                    
                    if(line.trim().equals("quit"))  //退出判断
                        done = true;
                    
                }
                
            }
            
            socketAccept.close();
            
            
        }catch(Exception e){
            System.out.println("启动服务器端出现错误"+e.getMessage());
        }
    }
    
    
    
    
    
}