Java常见应用——Socket,文件拆分合并,序列化反序列化
一.Socket
1.基于TCP的网络传输协议
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b451c9fe89389e8acae9679799252945.png)
package com.nike.app.socket;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(9999);
Socket socket = server.accept();
System.out.println("客户端连接成功。。。");
OutputStream output = socket.getOutputStream();
output.write("Hello".getBytes());
byte[] buf = new byte[1024];
int len = 0;
InputStream input = socket.getInputStream();
while ((len=input.read(buf)) != -1){
System.out.println(new String(buf,0,len));
}
input.close();
output.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.nike.app.socket;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class MyClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("127.0.0.1",9999);
InputStream input = socket.getInputStream();
byte[] buf = new byte[1024];
int len = input.read(buf);
System.out.println(new String(buf,0,len));
OutputStream output = socket.getOutputStream();
System.out.println("客户端发送消息:");
output.write("Hello,World!".getBytes());
output.close();
input.close();
socket.close();
} catch (IOException e) {
}
}
}
Socket发送文件
package com.nike.app.socket;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(9999);
Socket socket = server.accept();
System.out.println("客户端连接成功。。。");
OutputStream output = socket.getOutputStream();
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\Users\\Administrator\\Documents\\Tencent Files\\1506214574\\FileRecv\\MobileFile\\music.mp3"));
long start = System.currentTimeMillis();
byte[] buf = new byte[1024];
int len = 0;
while ((len = bis.read(buf))!=-1){
System.out.println(len);
output.write(buf);
}
long end = System.currentTimeMillis();
System.out.println("传输完成,共用时:"+(end-start)+"毫秒!");
bis.close();
output.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.nike.app.socket;
import java.io.*;
import java.net.Socket;
public class MyClient {
public static void main(