什么是IP地址呢,IP地址表示一个一个电脑的标识符,由十六个十进制组成
端口:相当于门牌号,指一个电脑的软件的标识符
//服务器
package com.asia.hand;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;
/**
-
@author asia
-
@Title:
-
@Package
-
@Description: 服务器
-
@date 2019/8/1116:27
*/
public class Server {public static void main(String[] args) throws Exception {
//创建服务器对象
ServerSocket serverSocket=new ServerSocket(8888);
//获取socket对象
while (true)
{
Socket socket = serverSocket.accept();
new Thread(new Runnable() {
@Override
public void run() {
try {
//获取输入流
InputStream inputStream = socket.getInputStream();
//创建文件
File file=new File(“E:\upload”);
if (!file.exists()){
file.mkdir();
}
//文件命名
String filename=“asia”+System.currentTimeMillis()+new Random().nextInt(999999)+".jpg";
//创建输出流,上传到本地文件
FileOutputStream fos=new FileOutputStream(file+"\"+filename);
int len=0;
byte[] bytes=new byte[3048];
while ((len=inputStream.read(bytes))!=-1){
fos.write(bytes,0,len);
}socket.getOutputStream().write("上传成功".getBytes()); fos.close(); socket.close(); }catch (Exception E){ E.printStackTrace(); } } }).start(); }
}
}
//客户端
package com.asia.hand;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
/**
-
@author asia
-
@Title:
-
@Package
-
@Description: 文件上传
-
@date 2019/8/117:20
*/
public class FileUpload {public static void main(String[] args) throws Exception {
//创建本地输入流,读取本地文件
FileInputStream fis=new FileInputStream(“E:\jj.jpg”);
//创建客户端对象,绑定服务器ip,地址
Socket socket=new Socket(“127.0.0.1”,8888);
//创建网路输出流
OutputStream outputStream = socket.getOutputStream();
//使用本地字节输入流读取文件
int len=0;
byte[] bytes=new byte[3048];
while ((len=fis.read(bytes))!=-1){
outputStream.write(bytes,0,len);
}
socket.shutdownOutput();
//使用网络流,读取服务器发送过来的数据
InputStream is = socket.getInputStream();
while ((len=is.read(bytes))!=-1){
System.out.println(new String(bytes,0,len));
}fis.close(); socket.close();
}
}