lyt0612

导航

2022-08-11 第二组刘禹彤 学习笔记

打卡30天

 

 

###学习笔记

网络编程(网络通信

  • 服务器:是一台电脑(低配)

客户端:是一台电脑,是手机,是平板,是网页

Socket编程

Socket编程是建立在是TCP/IP协议上

1.如何在网络环境下访问其他的主机

通过IP地址+端口号形式可以访问其他的主机2

2.查看自己的电脑在当前网络环境下的IP地址

通过指令控制台CMD:ipconfig查看ipv4地址,是当前局域网下的ip地址

3.一个电脑可以有好多个端口号,每个端口号对应的程序也可以不同

当我们通过IP地址+端口号访问一个指定的应用程序的时候,

192.168.1.1.8888 192.168.1.1.9999

Socket通信服务端是一个对象:ServerSocket类

4.UDP:不可靠的传输协议

  • C/S架构:Client/Server 客户端/服务器(QQ,360,腾讯会议,游戏

B/S架构:Browser/Server浏览器/服务器( 移动互联,手机端为主

C/S架构, Java主要要做的就是架构中的Server端。

1.静态资源:所有用户访问后,得到的结果都是一样的。html

2.动态资源:每个用户访问后,得到的结果可能不一样。爱奇艺

  • web服务器: 接收用户的请求,处理请求,给出响应。

通过浏览器访问我们的ServerSocket服务器,我们通过浏览器给我们的ServerSocket服务器发起了 请求 我要访问服务器!!!

  • 通过IP地址 + 端口号

本机的IP地址: 1.cmd---ipconfig

2.127.0.0.1---本机(个人建议,任何情况都好使)

3.localhost---本机(前提条件:你的电脑要联网,激活一下网卡)

我们通过浏览器访问我们的ServerSocket,得到了一堆信息,看不懂。

其实发送过来的信息:报文。浏览器传递过来的一些消息。

  • User-Agent:告诉服务器我是从什么样的客户端来的。

Host: 127.0.0.1:8080,主机地址,目标主机。

貌似浏览器也是通过Socket和我们的服务器建立了TCP连接 我们不妨把浏览器给我们的服务器发送的信息称之为“请求”, 而且这个请求格式满足了http的协议。

  • 请求:客户端--->服务器

响应:服务器--->客户端 我需要给浏览器一个响应!!!

我们一般情况下,给浏览器做出响应,需要遵循浏览器的格式要求

  • 重定向

假如我要访问的是www.baidu.com,结果页面展示的是www.jd.com 重定向会重新定位到新的页面,而且地址栏的地址也会随之变化。

###学习心得

今天学习了一些网络编程相关的内容,发现面向对象是Java开发的基础,之前学习过的东西到目前都有涉猎,还是应该把基础打牢

###掌握情况:一般

###课上练习

package a;

import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class Ch01 {
    @Test
    public void server() throws IOException {
        //创建一个服务器对象,绑定在8888端口
        ServerSocket serverSocket = new ServerSocket(8888);
        System.out.println("服务器已启动");
        //服务器在等待客户端连接
        Socket socket = serverSocket.accept();
        //读取客户端发送过来的消息
        InputStream inputStream = socket.getInputStream();
        byte[] buffer = new byte[1024*1024];
        int len;
        while ((len = inputStream.read(buffer)) != -1){
            System.out.println("服务器已接收客户端的数据:" + new String(buffer,0,len));
        }

    }
    @Test
    public void client() throws IOException {
        //创建一个Socket通信客户端
        Socket socket = new Socket();
        //第一个参数就是获取当前电脑的IP地址
        //第二个参数就是服务器的端口号
        socket.connect(new InetSocketAddress(InetAddress.getLoopbackAddress(),8888));
        //客户端发送数据给服务器
        OutputStream outputStream =socket.getOutputStream();
        String data = "hello,server!";
        outputStream.write(data.getBytes());
        System.out.println("客户端已发送数据:" + data);
        outputStream.close();
        socket.close();
    }
}

###运行结果

 

 

 

posted on 2022-08-11 19:00  小仙女吖~  阅读(37)  评论(0编辑  收藏  举报