目录
1.软件架构
2.网络编程三要素
3.IP
1.IPV4
2.IPV6
//获取InetAddress的对象
InetAddress address = InetAddress.getByName("127.0.0.1");
4.端口号
5.协议
1.UDP协议
UDP协议发送数据:
public class Send{
public static void main(String[] args) throws IOException {
//创建DatagramSocket对象
DatagramSocket ds = new DatagramSocket();
//打包数据
String str = "你好!!";
byte[] bytes = str.getBytes();
InetAddress address = InetAddress.getByName("127.0.0.1");
int port = 10006;
DatagramPacket dp = new DatagramPacket(bytes, bytes.length, address, port);
//发送数据
ds.send(dp);
//释放资源
ds.close();
}
}
UDP协议接收数据:
public class Receive{
public static void main(String[] args) throws IOException {
//创建DatagramSocket对象:接收时绑定的端口号要与发送时的端口保持一致
DatagramSocket ds = new DatagramSocket(10086);
//接收数据包
byte[] bytes = new byte[1024];
DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
ds.receive(dp);
//解析数据包
byte[] data = dp.getData();
int length = dp.getLength();
InetAddress address = dp.getAddress();
int port = dp.getPort();
System.out.println("接收到数据:" + new String(data, 0, length));
System.out.println("该数据是从" + address + "这台电脑中的" + port + "这个端口号发出的");
//释放资源
ds.close();
}
}
1.单播
2.组播
3.广播
2.TCP协议
客户端发送数据:
public class Client {
public static void main(String[] args) throws IOException {
//发送数据
//创建Socket对象
Socket socket = new Socket("127.0.0.1", 10001);
//从连接通道中获取输出流
OutputStream os = socket.getOutputStream();
//写出数据
os.write("你好".getBytes());
//释放资源
os.close();
socket.close();
}
}
服务器接收数据:
public class Server {
public static void main(String[] args) throws IOException {
//接收数据
//
ServerSocket ss = new ServerSocket(10001);
//监听用户的连接
Socket socket = ss.accept();
//从连接通道中获取输入流数据
InputStream is = socket.getInputStream();
//解决中文乱码
InputStreamReader isr = new InputStreamReader(is);
//使用缓冲流提高读取效率
BufferedReader br = new BufferedReader(isr);
int b;
while ((b = br.read()) != -1) {
System.out.println((char) b);
}
//释放资源
socket.close();
ss.close();
}
}