目录
一 网络概述
二 网络的类型分类
三 网络体系结构
四 网络通信协议概述
五 网络通信协议种类
六 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();
}
}