linux中如何实现用java写一个http服务器,本人新手一枚,不知道从哪里开始

linux中如何实现用java写一个http服务器,本人新手一枚,不知道从哪里开始,第1张

import javaio;
import javanet;public class ftpServer extends Thread{ public static void main(String args[]){
String initDir;
initDir = "D:/Ftp";
ServerSocket server;
Socket socket;
String s;
String user;
String password;
user = "root";
password = "123456";
try{
Systemoutprintln("MYFTP服务器启动");
Systemoutprintln("正在等待连接");
//监听21号端口
server = new ServerSocket(21);
socket = serveraccept();
Systemoutprintln("连接成功");
Systemoutprintln("");
Systemoutprintln("");

InputStream in =socketgetInputStream();
OutputStream out = socketgetOutputStream();

DataInputStream din = new DataInputStream(in);
DataOutputStream dout=new DataOutputStream(out);
Systemoutprintln("请等待验证客户信息");

while(true){
s = dinreadUTF();
if(strim()equals("LOGIN "+user)){
s = "请输入密码:";
doutwriteUTF(s);
s = dinreadUTF();
if(strim()equals(password)){
s = "连接成功。";
doutwriteUTF(s);
break;
}
else{s ="密码错误,请重新输入用户名:";<br> doutwriteUTF(s);<br> <br> }
}
else{
s = "您输入的命令不正确或此用户不存在,请重新输入:";
doutwriteUTF(s);
}
}
Systemoutprintln("验证客户信息完毕"); while(true){
Systemoutprintln("");
Systemoutprintln("");
s = dinreadUTF();
if(strim()equals("DIR")){
String output = "";
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= filelist();
for(int i=0;i<dirStructurelength;i++){
output +=dirStructure[i]+"\n";
}
s=output;
doutwriteUTF(s);
}
else if(sstartsWith("GET")){
s = ssubstring(3);
s = strim();
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= filelist();
String e= s;
int i=0;
s ="不存在";
while(true){
if(eequals(dirStructure[i])){
s="存在";
doutwriteUTF(s);
RandomAccessFile outFile = new RandomAccessFile(initDir+"/"+e,"r");
byte byteBuffer[]= new byte[1024];
int amount;
while((amount = outFileread(byteBuffer)) != -1){
doutwrite(byteBuffer, 0, amount);break;
}break;

}
else if(i<dirStructurelength-1){
i++;
}
else{
doutwriteUTF(s);
break;
}
}
}
else if(sstartsWith("PUT")){
s = ssubstring(3);
s = strim();
RandomAccessFile inFile = new RandomAccessFile(initDir+"/"+s,"rw");
byte byteBuffer[] = new byte[1024];
int amount;
while((amount =dinread(byteBuffer) )!= -1){
inFilewrite(byteBuffer, 0, amount);break;
}
}
else if(strim()equals("BYE"))break;
else{
s = "您输入的命令不正确或此用户不存在,请重新输入:";
doutwriteUTF(s);
}
}

dinclose();
doutclose();
inclose();
outclose();
socketclose();
}
catch(Exception e){
Systemoutprintln("MYFTP关闭!"+e);

}
}}

你是要单次运行还是不挂断在后台运行?单次直接java -jar xxxjar 就可以了,不挂断的话,可以编写一个shell脚本,startsh 内容如下
#!/bin/sh
nohup java -jar -XX:PermSize=64m -XX:MaxPermSize=128m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:SurvivorRatio=8 xxxjar>/dev/null 2>&1 &
具体的参数你自己把握,然后保存,给这个脚本赋于可执行权限,chmod +x startsh
然后执行这个脚本,sh startsh ,然后查看一下java进程,看这个服务起来没有,jps


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10604500.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存