定义:Socket通讯使用Socket套接字进行通讯,客户端向服务器端发送Socket类,数据传输通过Socket提供的输入流和输出流,服务端通过ServerSocket提供的accept方法接收客户端的Socket类,通过这个类和客户端进行数据流传输,数据流类型自行定义
客户端代码
public static void main(String[] args) throws Exception {
Socket socket=new Socket("127.0.0.1",8888);
File file=new File("E:"+File.separator+"1.jpg");
InputStream inputStream=new FileInputStream(file);
int len=0;
byte [] bytes=new byte[1024];
OutputStream outputStream=socket.getOutputStream();
while ((len=inputStream.read(bytes))!=-1){
outputStream.write(bytes,0,len);
}
socket.shutdownOutput();
while((len = socket.getInputStream().read(bytes))!=-1){
System.out.println(new String(bytes,0,len));
}
outputStream.close();
inputStream.close();
socket.close();
}
服务端代码
public class MyTestServer {
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(8888);
File file = new File("E://upload");
if (!file.exists()) {
file.mkdirs();
}
while (true) {
Socket socket = serverSocket.accept();
String s = System.currentTimeMillis() + ".jpg";
OutputStream outputStream = new FileOutputStream(file + File.separator + s);
int len = 0;
InputStream stream = socket.getInputStream();
byte[] bytes = new byte[1024];
while ((len = stream.read(bytes)) != -1) {
outputStream.write(bytes, 0, len);
}
socket.getOutputStream().write("上传成功".getBytes());
// stream.close();
outputStream.close();
socket.close();
}
}
}