JAVA小白第十天学习心得-----网络编程

前言:这是JAVA学习基础第一阶段的最后一课,内容不多,但是理解起来比较抽象,需要仔细琢磨;

一:一些网络编程的概念

1:每个端口都只有一个端口号,且端口号不能重复;

2:需要查看本机ip地址可以使用win+r调出任务管理器,输入ipconfig指令,可以查看本机的ip地址,为后续创建JAVA代码与浏览器之间的联系做好准备;

3:每个网址都对应着不同的路径,用户通过不同的路径访问就可以实现不同的功能;

二:如何通过JAVA代码实现在浏览器上创建一个端口号

1:首先需要创建一个类ServerSocket,并在()添加上你需要创建的端口号,这里需要对异常进行一个主动处理(try/catch),需要注意的是因为要让他处于一直运行状态所以后续要加入一个while循环,但是创建端口号不能放入循环体,因为只能有一个端口号不能重复创建,所以要把创建端口号这行代码放到while循环体外面;

2:在while循环体里,使用.accpet功能用于接收客户端发送的信息,因为是Socket类型的所以需要用一个Socket类型的变量去接收;

  ServerSocket serverSocket= null;
  try {
      serverSocket = new ServerSocket(8081);
  } catch (IOException e) {
      e.printStackTrace();
  }
  while (true){
    try {
        //本地开启一个服务,得给他指名一个端口号;

        //接收客户端发送请求的数据;
        Socket socket= serverSocket.accept();
        System.out.println("已经被接受了");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

三:如何通过JAVA代码实现在浏览器创建的端口号里输出内容

1:首先和上面一样,都是需要先创建一个端口号

2;端口号创建完成以后,调用socket.getInputstream方法,获取输入流对象接收数据

InputStream inputStream= socket.getInputStream();

3;调用socket.getOutputstream方法,进行输出操作

outputStream=socket.getOutputStream();

4;需要将字符输入流转化为字节输入流,方便读取一整行数据

//装换将字符输入流转化为字节输入流
      BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
 //通过高效输入流读取一整行数据
        String  dog=  bufferedReader.readLine();

5;使用裁剪功能裁剪出路径,用于后续判断使用

//使用一个字符数组接收割取空格以后的数据
              String[]dogs=  dog.split(" ");
  //因为,路径在第二个,所以直接读取
              String path=dogs[1];

6;默认使用这三行代码,否则会乱码,或传递不成功

// 返回的内容默认utf8(字符集编码)的数据,但是浏览器不知道
// 浏览器就会按照系统默认,中文系统编码GBK
// 使用GBK的编码去解析utf8的数据
outputStream.write("HTTP/1.1 200 OK\r\n".getBytes());
outputStream.write("Content-type:text/html;charset=utf8\r\n".getBytes());
outputStream.write("\r\n".getBytes());

7;最后输出你需要打印的东西,因为要转换得在最后加上.getBytes()功能

//将字节数组转换为字符数组
outputStream.write("<h1>天气变得好坏<h1/>".getBytes());

8;最后使用.close功能关闭即可

9;可以根据访问不同路径达成打印不同东西的效果;

就是通过裁剪的路径进行一个if判断

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值