蜂信物联FastBee平台https://gitee.com/beecue/fastbee

阿里资料开源项目https://gitee.com/vip204888

百度低代码前端框架https://gitee.com/baidu/amis

OpenHarmony开源项目https://gitcode.com/openharmony

仓颉编程语言开放项目https://gitcode.com/Cangjie
第三次握手:客户端再次向服务器发生确认信息,确认连接。
完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面向连接的特性,TCP协议可以保证传输数据的安全。所以应用十分广泛

在这里插入图片描述

网络编程三要素:

协议:
协议:计算机网络通信必须遵守的规则
IP地址:
IP地址:指互联网协议地址。俗称IP。IP地址用来给一个网络中计算机设备做唯一的编号。
IP地址分类
IPV4 IPV6
常用命令:ipconfig 查看本机IP地址
检查网络是否连接,在控制台输入:
ping 空格 IP地址
端口号:
网络的通信,本质上是两个进程(应用程序)的通信。每台计算机都有很多的进程。
端口号:用两个字节表示的整数,它的范围时0-65535,其中0-1023之间的端口号用于一些知名的网络服务和应用。
普通的应用程序需要使用1024以上的端口号,如果端口号被另外一个服务或应用占用,会导致当前程序启动失败
常用端口号:
1.80端口:网络端口 www.baidu.com:80 正确的网址
2.数据库端口: mysql:3306 Oracle:1521
3.Tomcat服务器:8080

1.C/S结构

TCP程序: TCP通信能实现两台计算机之间的数据交互,通信的两端 要严格区分为客户端(Client) 与 服务器(Server)

两端通信时的步骤:
1.服务端程序,需要先启动,等待客户端连接

2.客户端主动连接服务器端,连接成功后才能通信,服务器不可以主动连接客户端

java中提供了两个类用于实现TCP通信程序:
1.客户端:java.net.Socket 该类实现客户端套接字(也称为“套接字”)。 套接字是两台机器之间通讯的端点。
创建Socket对象,向服务器发生连接请求,服务器响应请求。连着开始通信
2.服务端:java.net.ServerSocket 这个类实现了服务器套接字。 服务器套接字等待通过网络进入的请求。 它根据该请求执行一些操作,然后可能将结果返回给请求者。
创建ServerSocket 对象,相当于开启一个服务,并等待客户端的连接

客户端Client
Tcp通信的客户端,向服务器发生连接请求,给服务器发送数据,读取服务器回写的数据
表示客户端的类java.net.Socket
该类实现客户端套接字(也称为“套接字”)。 套接字是两台机器之间通讯的端点。

套接字:包含了IP地址和端口号的网络单位

构造方法:
Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。
参数:
String host:服务器主机的名称/服务器的IP地址
int port:服务器的端口号

成员方法:
OutputStream getOutputStream() 返回此套接字的输出流。
InputStream getInputStream() 返回此套接字的输入流。
void close() 关闭此套接字。

实现步骤:
1.创建一个客户端对象Socket ,构造方法中绑定服务器的IP地址和端口号
2.使用Socket对象中的方法getOutputStream() 获取网络字节输出流对象OutputStream对象
3.使用网络字节输出流OutputStream对象中的方法 write 给服务器发生数据
4.使用Socket对象中的方法getInputStream() 获取网络字节输入流对象InputStream对象
5.使用网络字节输出流InputStream对象中的方法 read 读取服务器回写过来的数据
6.释放资源(Socket)
注意:
1.客户端与服务器进行交互,必须使用socket提供的网络流,不能使用自己创建的流对象
2.当我们创建客户端对象Socket的时候,就会去请求服务器和服务器经过三次握手建立链接
这时,如果服务器没有启动,就会抛出异常 java.net.ConnectException: 连接异常
如果服务以及启动,就可以进行交互了
在这里插入图片描述

public class TCPClient {
 
	public static void main(String[] args) throws IOException {
 
		//1.创建一个客户端对象Socket ,构造方法中绑定服务器的IP地址和端口号
		Socket socket = new Socket("127.0.0.1", 6666);
		//2.使用Socket对象中的方法getOutputStream() 获取网络字节输出流对象OutputStream对象
		 OutputStream os = socket.getOutputStream();
		//3.使用网络字节输出流OutputStream对象中的方法 write 给服务器发生数据
		 os.write("你好服务器".getBytes());
		//4.使用Socket对象中的方法getInputStream() 获取网络字节输入流对象InputStream对象
		 InputStream is = socket.getInputStream();


# 总结

无论是哪家公司,都很重视高并发高可用的技术,重视基础,重视JVM。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。

最后我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。

![面试了阿里,滴滴,网易,蚂蚁,最终有幸去了网易【面试题分享】](https://img-blog.csdnimg.cn/img_convert/e68b576bd737b0e3fd89b4bf352ba7a2.webp?x-oss-process=image/format,png)

些面试,大家都会有这些感触。

最后我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。

[外链图片转存中...(img-fnRaxoDx-1725180220002)]

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐