栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA网络编程必备知识储库

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA网络编程必备知识储库

JAVA网络编程必备知识储库 软件结构
  • C/S结构:全称Client/Server结构,指客户端和服务端结构,常见程序QQ、迅雷
  • B/S结构:全称Browser/Server结构,是指浏览器结构和服务器结构,常见浏览器谷歌、火狐

两种架构各有优势,但无论哪种架构都离不开网络的支持,网络编程,就是在一定的协议下,实现两台电脑的通信协议。

网络通信协议
  • 网络通信协议:通过计算机网络可以使多台计算机连接,位于同一个网络的计算机在进行连接和通信是必须遵守一定的规则。
  • TCP/IP协议:传输控制协议/因特网互联协议,是Internet最基本,最广泛的协议,定义计算机如何连入因特网,以及数据如何在它们之间传输的标准,它的内部包含了一系列用于处理数据通信的协议,并采用四层分层模式,每一层都呼叫他的下一层所提供的协议完成自己的需求。分为应用层、传输层、网络层、物理层
协议分类
  • UDP:用户数据报协议。UDP是无连接通信协议,即在通信的时候发送端和接收端不建立逻辑连接。特点:消耗资源小,通信效率高但不能保证数据的完整性,通常音频,视频电话用UDP协议
  • TCP:传输控制协议,是面向连接的通信协议,即通信前发送端和接收端建立逻辑连接,而这个连接包含一个对象IO流对象,在传输数据,由客户端向服务端发送请求连接,每次连接的创建都需要经过三次挥手,确保连接的可靠。
    • 第一次握手:客户端向服务端发出请求连接,等待服务端请求连接
    • 第二次握手:服务端向客户端回送一个响应,通知客户端收到了连接请求
    • 第三次握手:客户端再次向服务端发送确认信息,确认连接
IP地址
  • IP地址:指互联网协议地址,IP地址给一个网络中计算机设备做唯一的编号,相当于电话号码
  • IP地址分类:IPV4、IPV6
  • 查看本机IP地址,在控制台输入

ipconfig

  • 检查网络是否连通,在控制台输入

ping 空格 IP地址

  • 127.0.0.1、localhost代表本机IP
端口号

端口号:当我们网络软件一打开,那么操作系统会为网络软件分配一个随机端口号
或者给操作系统要一个指定端口号

TCP通信程序
  • 两端通信步骤

1、服务端程序,需要事前启动,等待客户端连接
2、客户端主动连接服务端,连接成功才能通信,服务端不可以主动连接客户端

  • JAVA中提供了两个类实现TCP通信程序

1、客户端:java.net.Socket类表示,创建Socket对象,向服务端发出连接请求,服务端响应请求,两者建立,连接开始通信
2、服务端:java.net.ServerSocket类表示,创建ServerSocket对象,相当于开启一个服务,并等待客户端的连接。


TCP通信协议代码展示 客户端
public class TCPClient {
    public static void main(String[] args) throws IOException {
        Socket socket= new Socket("127.0.0.1",8888);
        OutputStream os = socket.getOutputStream();
        InputStream is = socket.getInputStream();
        os.write("你好".getBytes(StandardCharsets.UTF_8));
        byte []bytes=new byte [1024];
        int len = is.read(bytes);
        System.out.println(new String (bytes,0,len));
        socket.close();
    }
}
服务端
public class TCPServer {
    public static void main(String[] args) throws IOException {
        ServerSocket st=new ServerSocket(8888);
        Socket socket = st.accept();
        InputStream is = socket.getInputStream();
        byte []bytes=new byte [1024];
        int len = is.read(bytes);
        System.out.println(new String (bytes,0,len));
        OutputStream os = socket.getOutputStream();
        os.write("谢谢".getBytes(StandardCharsets.UTF_8));
        st.close();
        socket.close();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328275.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号