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>";