20220811 第七小组 王茜 学习笔记

一:

 网络编程(网络通信)
 
  服务器:是一台电脑。是一台低配的电脑。
  客户端:是一台电脑,是手机,是平板,是网页。
 
 我们即将要在我们自己的电脑上搭建服务器环境
  我们自己的电脑还得是客户端。
 
  我们的电脑既是服务器,又是客户端。
 
  Socket编程
  Socket编程是建立在TCP/IP协议。
 
  如何在网络环境下访问其他的主机。
 
  通过IP地址 + 端口号形式可以访问其他的主机。
 
  查看自己的电脑在当前网络环境下的IP地址:
 通过指令控制台CMD:ipconfig查看ipv4地址,是当前局域网下的ip地址
  192.168.1.1:8888
 
  一台电脑可以有好多个端口号,每个端口号对应的程序也可以不同。
  当我们通过IP地址 + 端口号访问一个指定的应用程序的时候,
  192.168.1.1:8888
  192.168.1.1:9999
 
  我们接下来就要在我们的电脑上开辟一个端口号,这个端口号就是服务器的端口
  然后我们在构建一个客户端,来通过ip地址+端口号来访问到服务器
 
  Socket通信的服务端也是一个对象:ServerSocket类

二:

接收信息,接的是什么信息?
         看输入流是怎么来的?
         我们现在的输入流是怎么来的?
         通过socket获取到的
         socket是怎么来的?
         socket是通过服务器启动之后,接到的客户端连接
         我们的输入流就是客户端的输入流
         因为我们现在接收的是一个文件
         我们需要把这个文件另存

outputStream.write(buffer,0,len);

三:

构建成了一个数据报文
        第一个参数就是要发送的数据
        第二个参数从哪开始发
        第三个参数发多长
        第四个参数指定服务器的ip地址
        第五个参数是服务器的端口号
        我们需要构建一个输出流,把这个文件保存在硬盘上

DatagramPacket packet = new DatagramPacket(data,
                0,data.length,
                InetAddress.getLocalHost(),9999);

四:

 创建了一个Socket通信的客户端

 第一个参数就是获取当前电脑的IP地址
 第二个参数就是服务器的端口号
        socket.connect(new InetSocketAddress(InetAddress.getLoopbackAddress(),8888));
 客户端发送数据给服务器

五:

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---本机(前提条件:你的电脑要联网,激活一下网卡)
   127.0.0.1:8080
 
  我们通过浏览器访问我们的ServerSocket,得到了一堆信息,看不懂。
 
   其实发送过来的信息,报文。浏览器传递过来的一些消息。
   User-Agent:告诉服务器我是从什么样的客户端来的。
   Host: 127.0.0.1:8080,主机地址,目标主机。
 
   貌似浏览器也是通过Socket和我们的服务器建立了TCP连接
 
   我们不妨把浏览器给我们的服务器发送的信息称之为“请求”,
   而且这个请求格式满足了http的协议。
 
   请求:客户端--->服务器
   响应:服务器--->客户端
 
   我需要给浏览器一个响应!!!
 
   我们一般情况下,给浏览器做出响应,需要遵循浏览器的格式要求:

 按照http协议的格式封装一个报文数据
        String response = "HTTP/1.1 200 OK\r\n"+
                "Content-Length: 39\r\n" +
                "Content-Type: text/html;charset=UTF-8\r\n\r\n" +
                "<h1>hello server</h1>";

posted @ 2022-08-11 20:38  无聊的wx  阅读(48)  评论(0)    收藏  举报