赞
踩
1、计算机网络
(1)、概念:计算机网络即通过通信线路相互连接,使其能够交换数据、共享资源、协同工作。
(2)、组成:计算机网络由计算机、设备硬件、协议、服务组成一个局域网、广域网、互联网。
2、网络协议
(1)、目的:设计网络通信规则、标准、服务。
(2)、内容:数据格式、传输效率、传输控制。
传输层协议模式
TCP(传输控制协议):
TCP相对于UDP比较稳定的传输协议,这里存在三次握手,保证连接状态,同时有明确的客户端和服务端之分 TCP服务中需要服务器端先启动,需要监听指定端口,等待客户端连接。 客户端主动连接服务器,和服务器连接之后,才可以进行数据交互,服务器不能主动连接客户端的。简单来说TCP类似打电话的通信协议,必须保证双方都在线时才能传输数据。
UDP(用户数据报协议):
UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一个台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。简单来说UDP类似发短信的过程,双方不必要都在线。
(本章主要围绕TCP展开)
1、套接字
2、网络IO流
实现简单的TCP传输可以创建两个客户端
1、客户端A
- public class ASide {
-
- public static void main(String[] args) {
- try {
- //创建TCP的Socket对象并初始化目标端口
- ServerSocket socket = new ServerSocket(58888);
- //输出当前IP地址
- System.out.println("初始化完成"+socket.getInetAddress() + "");
- System.out.println("监听中");
- //当监听到有端口向A发送信息时接收数据
- Socket A = socket.accept();
- //输出连接地址
- System.out.println("当前连接为:"+A.getInetAddress());
-
- //信息发送
- //从控制台获取输入信息
- String message = new Scanner(System.in).next();
- //将输入信息转化为字节形式并保存在列表中
- byte [] data = message.getBytes();
-
- //新建输出流,开始向对方发送信息
- OutputStream os = A.getOutputStream();
- //传入需要发送的数据
- os.write(data);
- //刷新
- os.flush();
- //关闭服务,避免资源占用
- os.close();
- A.close();
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- }

2、客户端B
- public class BSide {
- public static void main(String[] args) {
- //新建一个字节列表用于接收信息
- byte [] msg = new byte[2048];
- try {
- //初始化客户端B的Socket对象
- Socket b = new Socket("127.0.0.1" , 58888);
- System.out.println("B连接"+b.getLocalPort());
- //创建输入流用于接收信息
- InputStream insB = b.getInputStream();
- //将接收的信息存入列表中
- insB.read(msg);
- //将列表中的信息转换为字符串
- int len = msg.length;
- String newMsg = new String(msg , 0 , len);
- System.out.println(newMsg);
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- }

3、运行
运行时先启动客户端A,并输入需要发送的内容,再启动客户端B
A:
B:
客户端A控制台中输入信息并回车
客户端B接收消息
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。