1.InetAddress
创建:InetAddress add = InetAddress.getLocalHost();
.getHostName()获取主机名
.getHostAddress()获取IP
.getByName()拿别人的地址或IP
InetSocketAddress 可以获取端口号
.getPort()获取端口
2.URL:
url.getProtocol()获取协议
url.getHost()获取主机名/域名
url.getPath()在服务器上的文件路径
url.getDefaultPort()获取默认端口号
3.socket:
1.依靠的是字节流完成数据的传输
2.写出数据使用输出流
读入数据使用输入流
3.ServerSocket 在 accept()方法处进入线程阻塞 直到有客户端连接 才会继续向下执行
单人的传输:
客户端Client
1.创建客户端对象 Socket
2.获取输出流 socket.getOutputStream(); DataOutputStream
3.关流 dos.close();
服务端:Server
1.创建服务端对象 ServerSocket
2.获取对应 客户端 Socket serverSocket.accept();
3.使用输入流获取数据 socket.getInputStream();
DataInputStream dis.readUTF();
4.关流 dis.close();
双人的传输:
客户端Client
1.创建客户端对象 Socket
2.写出数据到服务端socket.getOutputStream(); DataOutputStream
dos.writeUTF(“亲,在吗?”);
3.接收服务端的 反馈 DataInputStream dis.readUTF();
dis.readUTF();
4.关流
服务端:Server
1.创建服务端对象 ServerSocket
2.获取对应的客户端socket serverSocket.accept();
3.获取客户端数据 DataInputStream dis.readUTF();
4.给出客户端响应socket.getOutputStream(); DataOutputStream
dos.writeUTF(“收到 谢谢!!!”);
5.关流
多人使用对象或方法:
客户端Client
1.创建客户端对象Socket
2.发送数据到服务端ObjectOutputStream或DataOutputStream
dos.writeUTF(“bjsxt&bjsxt”);
//对数据进行封装(Person p = new Person)创建对象
写出数据oos.writeObject§;
3.接收服务端的反馈 DataInputStream dis.readUTF();
4.关流
服务端:Server
1.创建服务端对象 ServerSocket
2.获取对应的Socket serverSocket.accept();
3.获取客户端发送的信息ObjectInputStream ois.readObject()
接收反馈的消息
强转/转型
4.对信息进行校验,判断值是否相等
\\5. 反馈结果DataOutputStream dos.writeUTF(message);
6.关流
服务端Server方法
1.创建服务端对象ServerSocket
2.接收客户端请求需要用到while serverSocket.accept();
3.处理请求socket.getInetAddress();
进入到方法new LoginThread(socket).start();
4.进行反馈
方法:
让方法继承Thread实现run
创建有参构造器
1.创建流DataInputStream 输入 DataOutputStream输出
2.对数据进行解析dis.readUTF(); message.split(\”&\”); //进行分割bjsxt&bjsxt放到数组
比较split[0].equals(“bjsxt”)split[1].equals(“bjsxt”)
3.进行反馈dos.writeUTF(ss);
4.udp:
客户端 发送的数据包 包含 服务端的地址和端口号
client.send(packet);
服务端 只是用来接收数据 数据包 不需要含有目的地地址的 服务端的地址和端口号
server.receive(packet);
客户端Client
1.新建客户端对象DatagramSocket
2.新建发送数据的数据包 “亲,在吗?”.getBytes();用byte接收 DatagramPacket
3.发送数据client.send(packet);
4.新建接收服务端反馈的数据 包 DatagramPacket
5.接收信息 client.receive(packet1);
6.信息的展示sout new String(packet1.getData(), 0, packet1.getLength())
7.关闭客户端 client.close();
服务端:Server
1.创建服务端对象DatagramSocke
2.新建数据包 DatagramPacket还有一个byte类型的数组
3.接收数据 server.receive(packet);
4.展示客户端发来的数据new String(packet.getData(), 0, packet.getLength());
5.新建对客户端反馈的数据包 DatagramPacket
6.对客户端进行反馈 server.send(packet1);
7.关闭服务端 server.close();