目录
一 网络概述
二 网络的类型分类
三 网络体系结构
四 网络通信协议概述
五 网络通信协议种类
六 Socket简介
七 Socket路径
八 java网络编程三要素
九 基于UDP协议的Socket编程
十 基于TCP协议的Socket编程
十一 基于TCP协议和UDP的区别
一 网络概述
- 多台相互连接的计算机
- 资源共享
- 交换数据
二 网络的类型分类
三 网络体系结构
四 网络通信协议概述
核心要点:在网络中,多台计算机如果希望进行通信/数据传递 必须遵循某种规约,如果不遵循,则无法进行资源共享或数据的传递
五 网络通信协议种类
UDP 特点:无连接,数据不可靠/不安全
TCP 特点:面向连接,数据可靠/安全
六 Socket简介
- Socket:套接字【通信链路的节点或端点】
- Socket:提供给应用程序的接口
七 Socket路径
java.net包路径
八 java网络编程三要素
- IP地址:设备在网络中的唯一标识
- 端口号:应用程序在设备中的唯一标识
- 协议:信息在网络传递中必须遵循的规约,例如UDP,TCP协议
九 基于UDP协议的Socket编程
发送段:
package org.example.demo03;import java.io.IOException;
import java.net.*;public class SendMsg {public static void main(String[] args) throws IOException {DatagramSocket datagramSocket = new DatagramSocket();String st = "jojo";byte[]bytes = st.getBytes();InetAddress address = InetAddress.getByName("127.0.0.1");int port = 10086;DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length,address,port);datagramSocket.send(datagramPacket);datagramSocket.close();}
}
接收端:
package org.example.demo03;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;public class ReceMsg {public static void main(String[] args) throws IOException {DatagramSocket datagramSocket = new DatagramSocket(10086);byte[] bytes = new byte[1024];DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length);datagramSocket.receive(datagramPacket);byte[]data = datagramPacket.getData();int length = datagramPacket.getLength();System.out.println("接收到的数据"+new String(data,0,length));datagramSocket.close();}
}
十 基于TCP协议的Socket编程
发送端:
package org.example.demo04;import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;public class SendMsg {public static void main(String[] args) throws IOException {Socket socket = new Socket("127.0.0.1",10001);OutputStream os = socket.getOutputStream();os.write("乔尼".getBytes());os.close();socket.close();}}
接收端:
package org.example.demo04;import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;public class ReceMsg {public static void main(String[] args) throws IOException {ServerSocket ss = new ServerSocket(10086);Socket socket = ss.accept();InputStream is = socket.getInputStream();InputStreamReader isr = new InputStreamReader(is);int b;while ((b = isr.read()) != -1) {System.out.print((char)b);}is.close();ss.close();}
}