java网络编程实验题远程访问服务器目录的程序

java网络编程实验题远程访问服务器目录的程序,第1张

代码如下。。。我测试过了。。。。下面两个类是在同一台机器上进行测试的,先运行Server.java,再运行Client.java

import java.io.*

import java.net.*

import java.text.SimpleDateFormat

import java.util.Date

public class Server {

public static void main(String[] args) throws Exception{

ServerSocket ss = new ServerSocket(8080)

Socket socket = ss.accept()

BufferedReader in = //获取客户端发过来的消息

new BufferedReader(

new InputStreamReader(socket.getInputStream()))

PrintWriter out = //用于向客户端发送消息

new PrintWriter(

new OutputStreamWriter(

socket.getOutputStream()),true)

while(true){

String message = in.readLine()//读取消息

if("quit".equals(message))//退出命令

break

String s[] = message.split("\\s+")

if("dir".equals(s[0])){

File dir = new File(s[1])

File[] files = dir.listFiles()

//向客户端发送文件消息

for(File file:files){

Date date = new Date(file.lastModified())

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd")//日期格式化

FileInputStream is = new FileInputStream(file)

out.println(file.getName()+"\t"+df.format(date)+"\t"+((is.available()+1023)/1024)+"k")

}

out.println("ok")

}

}

socket.close()

in.close()

out.close()

ss.close()

}

}

-------------------------------------------------------------------------------------------------------------

import java.io.*

import java.net.*

public class Client {

public static void main(String[] args) throws Exception{

InetAddress add = InetAddress.getByName(null)

Socket socket = new Socket(add,8080)

BufferedReader in = //获取服务器端发过来的消息

new BufferedReader(

new InputStreamReader(socket.getInputStream()))

PrintWriter out = //用于向服务器端发送消息

new PrintWriter(

new OutputStreamWriter(

socket.getOutputStream()),true)

out.println("dir d:/test")

String mes

while(true){

mes = in.readLine()

if("ok".equals(mes))

break

System.out.println(mes)

}

out.println("quit")

socket.close()

in.close()

out.close()

}

}

希望能帮到你。。。仍有问题可以追问或者直接HI我。。。

你得明白,启动远程的服务,首先得连接到服务器上去。

下面有两种方法:1、通过自定义程序;

2、使用现成的telnet或ssh(推荐)

方法1、首先得看linux服务器的限制,如果服务器允许自定义的登录,

并且你在服务器上运行了一个监听某端口(如1234)的程序,

写一个client端,用socket连接上去,就可以执行了。

方法2、如果服务器支持ssh或者telnet登录,且

允许远程执行脚本的话,可以直接登录进去(当然这算是

使用现成的程序吧,ssh更安全,不过或许不是你想要的。)

有现成的ssh服务,直接使用就是了,自己写的肯定没这个安全~~

要用java的话,应该也有现成的ssh客户端---


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/309877.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存