JAVA学习-----网络编程 |
一、InetAddress:多个静态方法 |
- 1.getLocalHost:本机
- 2.getByName:根据域名DNS|IP地址-->IP
*两个成员方法
- 1.getHostAddress:返回地址
- 2.getHostName:返回计算机名
二、端口: |
三、URL: |
四、UDP |
UdpClient: 发送端
1、使用DatagramSocket指定端口 创建发送端
DatagramSocket client=new DatagramSocket(888);
2、准备数据 一定转成字节数组
byte[] datas=IOUtils.fileToByteArray("1.png");
3、封装成DatagramPacket包裹 ,需要制定目的地
DatagramPacket packet=new DatagramPacket(datas,0,datas.length,new InetSocketAddress("localhost",999) ) ;
4、发送包裹send(DatagramPacket p)
client.send(packet);
5、释放资源
client.close();
UdpServer:接收端
1、使用DatagramSocket指定端口 创建接收端
DatagramSocket server=new DatagramSocket(999);
2、准备容器 封装成DatagramPacket包裹
byte[] container=new byte[1024*60];
DatagramPacket packet=new DatagramPacket(container,0,container.length ) ;
3、阻塞式接收包裹receive(DatagramPacket p)
server.receive(packet);
4、分析数据byte[] getData();getLength()
byte[] datas=packet.getData();
int len=packet.getLength();
System.out.println(new String(datas,0,len));
5、释放资源
server.close();
**要实现同时收发,只要引入线程,即使用面向对象封装(属性,对象,构造器):implements Runnable+定义+构造器+重写run。
五、TCP |
1、建立连接:使用Socket创建客户端+服务的地址和端口
Socket client=new Socket("localhost",8888);
2、操作:输入输出流操作
DataOutputStream dos=new DataOutputStream(client.getOutputStream());
String data="hello";
dos.writeUTF(data);
dos.flush();
3、释放资源
dos.close();
client.close();
(2)创建服务器:
1、指定端口:使用ServerSocket创建服务器
ServerSocket server=new ServerSocket(8888);
2、阻塞式等待连接 accept
Socket client =server.accept();
3、操作:输入输出流操作
DataInputStream dis=new DataInputStream(client.getInputStream());
String data=dis.readUTF();
System.out.println(data);
4、释放资源
dis.close();
client.close();
server.close();
多个用户端,封装+线程=完美