关于#java#的问题:如何根据视频的ip地址,把视频上传的服务器
什么叫做视频的ip地址,你的问题不太明确
可以使用Java中的Socket类来实现根据视频的IP地址将视频上传到服务器的功能。具体的实现思路如下:
下面是一个简单的示例代码:
客户端代码:
try {
Socket socket = new Socket("serverIP", 8888); // 建立连接
OutputStream outputStream = socket.getOutputStream(); // 获取输出流
FileInputStream fileInputStream = new FileInputStream("video.mp4"); // 读取视频文件
byte[] buffer = new byte[1024];
int len;
while ((len = fileInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len); // 将视频文件写入输出流中
}
fileInputStream.close();
outputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
服务器端代码:
try {
ServerSocket serverSocket = new ServerSocket(8888); // 监听端口
Socket socket = serverSocket.accept(); // 等待客户端连接
InputStream inputStream = socket.getInputStream(); // 获取输入流
FileOutputStream fileOutputStream = new FileOutputStream("video.mp4"); // 创建输出文件
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, len); // 将输入流中的视频文件写入输出文件中
}
fileOutputStream.close();
inputStream.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
需要注意的是,在实际应用中还需要考虑网络传输中的各种异常情况,例如连接中断、数据传输错误等,需要对代码进行完善和优化。
判断IP地址是否合法。例如:172.123.45.6合法;123.2.2或者192.168.2.a等都是非法IP地址。
输入:
172.163.66.3
192.163.3
172.10.a.bb
输出:
true
false
false
import java.util.*;
public class Main {
public static boolean ipaddress(String str){
//System.out.println(str);
String[] s = str.split("\\."); //“.”必须用转义字符
//System.out.println(s.length);
if(s.length == 4){
for(int i = 0; i < s.length; i++){
char[] ch = s[i].toCharArray();
boolean z = s[i].matches("[0-9]+");//判断字符串是否是纯数字
//System.out.println(z);
if(z == true){
int n = Integer.parseInt(s[i]);
if(n<0 || n>255){
return false;
}
}else if(z == false){
return false;
}
}
}else{
return false;
}
return true;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(true){
String str = sc.nextLine();
System.out.println(ipaddress(str));
}
}
}
测试: