1,udp的三种传输方式
1)单播
2)组播
3)广播
三种传输方式在传输端没有区别,而在接收端上,单播与广播的ip地址不同,组播则需要接收端加入一个组。
2,udp的传输代码
DatagramSocket ds = new DatagramSocket();
byte[] bytes = "hello".getBytes();
DatagramPacket dp = new DatagramPacket(bytes,bytes.length,InetAddress.getByName("127.0.1.0"),10000);
ds.send(dp);
ds.close();
udp的接收代码(单播)
DatagramSocket ds=new DatagramSocket(10000);
DatagramPacket dp=new DatagramPacket(new byte[1024],1024);
ds.receive(dp);
ds.close();
System.out.println(new String(dp.getData(),0,dp.getLength()));
3,tcp传文件,客户端代码
Socket sk = new Socket("127.0.1.0", 10000);
File file = new File("abc.png");
InputStream fis = new FileInputStream(file);
OutputStream fos = sk.getOutputStream();
byte[] bytes = new byte[1024];
int len;
while ((len = fis.read(bytes)) != -1) {
fos.write(bytes, 0, len);
}
fos.close();
fis.close();
sk.close();
tcp的服务端代码
ServerSocket ss = new ServerSocket(10000);
Socket socket = ss.accept();
InputStream is = socket.getInputStream();
OutputStream os = new FileOutputStream("aaa.png");
byte[] bytes = new byte[1024];
int len;
while ((len=is.read(bytes))!=-1){
os.write(bytes,0,len);
}
OutputStream outputStream=socket.getOutputStream();
outputStream.write("ok".getBytes(StandardCharsets.UTF_8));
outputStream.close();
os.close();
is.close();
socket.close();
ss.close();
主要运用了io流
客户端i:本地文件夹,o:网络
服务端i:网络,o:本地文件夹
只要跟文件有关就是FileInputStream或FileOutputStream,其余就用