javaftpsocket
InetAddress ip=InetAddress.getByName(args[0]);//第一個輸進來的是ip
int port = Integer.parseInt(args[1]);//e\第二個輸進來的是埠號
這兩個就是接收參數
B. 急!ftpClient.listFiles() SocketTimeoutException: Accept timed out ftp
是不是連接沒有正確關閉,或者對連接數,或者連接ip什麼的有限制。
這個提示就是說連接超時了啊。設置了超時時間?吧設置去了?
看看這個,有幫助。
http://bbs.csdn.net/topics/20145879#r_achor
C. Java ftp 伺服器 SYST
Socket 編程的幾個重要步驟
Socket 客戶端編程主要步驟如下:
socket() 創建一個 Socket
connect() 與伺服器連接
write() 和 read() 進行會話
close() 關閉 Socket
Socket 伺服器端編程主要步驟如下:
socket() 創建一個 Socket
bind()
listen() 監聽
accept() 接收連接的請求
write() 和 read() 進行會話
close() 關閉 Socket
D. 求每日定時在伺服器的FTP上取數據文件的源碼(JAVA)
這個是可以向伺服器端發送文字的程序,就是在客戶端發送一句hello在伺服器也可以接受到hello,這個程序可以修改一下就可以了。具體修改方法是增加一個定時器,然後把字元流改成位元組流,現在有點忙,你先研究啊,近兩天幫你寫寫看。
伺服器端:
import java.net.*;
import java.io.*;
public class DateServer {
public static void main(String[] args) {
ServerSocket server=null;
try{
server=new ServerSocket(6666);
System.out.println(
"Server start on port 6666...");
while(true){
Socket socket=server.accept();
new SocketHandler(socket).start();
/*
PrintWriter out=new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()
)
);
out.println(new java.util.Date().toLocaleString());
out.close();
*/
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(server!=null) {
try{
server.close();
}catch(Exception ex){}
}
}
}
}
class SocketHandler extends Thread {
private Socket socket;
public SocketHandler(Socket socket) {
this.socket=socket;
}
public void run() {
try{
PrintWriter out=new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()
)
);
out.println(
new java.util.Date().
toLocaleString());
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
客戶端:
package com.briup;
import java.io.*;
import java.net.*;
public class FtpClient {
public static void main(String[] args) {
if(args.length==0) {
System.out.println("Usage:java FtpClient file_path");
System.exit(0);
}
File file=new File(args[0]);
if(!file.exists()||!file.canRead()) {
System.out.println(args[0]+" doesn't exist or can not read.");
System.exit(0);
}
Socket socket=null;
try{
socket=new Socket(args[1],Integer.parseInt(args[2]));
BufferedInputStream in=new BufferedInputStream(
new FileInputStream(file)
);
BufferedOutputStream out=new BufferedOutputStream(
socket.getOutputStream()
);
byte[] buffer=new byte[1024*8];
int i=-1;
while((i=in.read(buffer))!=-1) {
out.write(buffer,0,i);
}
System.out.println(socket.getInetAddress().getHostAddress()+" send file over.");
in.close();
out.close();
}catch(Exception e){
e.printStackTrace();
}finally{
if(socket!=null) {
try{
socket.close();
}catch(Exception ex){}
}
}
}
}
E. java 如何實現伺服器與客服端數據的傳遞
如果你學過網路基礎的話,應該知道現在流行的tcp/ip協議,Java支持的是網路層或ip層以上的操作。
有很多種傳遞的方法,Java SE裡面就有RMI方式,或Socket方式(分tcp和udp兩種)。這些都屬於C/S的方式。
另外Java EE裡面以B/S方式主要是用客戶端向伺服器端的servlet/jsp發起請求實現的,其底層用的是http協議,一種應用層的協議。
其實,應用層的其他協議,如ftp, telnet, 甚至webservice,都可以用Java來實現,根據你的需要選擇。一般學習Java基礎的時候都是從socket編程,開發tcp或udp的通信程序的,其他的方式基本是在此方式基礎上擴展更適合對應的領域了。
F. linux沒有安裝FTP伺服器,運行JAVA報「ftp 建立連接Socket異常」是FTP伺服器的原因嗎
你是用JAVA連接FTP伺服器嗎。 如果是,那肯定出錯了,你自己都說沒FTP伺服器了
G. 使用FTPClient下載文件報錯java.net.SocketException: Software caused connection abort: recv failed
檢查一下路徑和埠號能不能登陸ftp
H. java 寫的ftp伺服器 不能獲取dir
你調試一下,看看input2.readLine()出來的是什麼類型就用什麼類型來接。看看input2.readLine()是否有值。在不行的話就調試進入input2.readLine()這個方法,看看那裡出問題。
I. 用java socket寫ftp客戶端如何向ftp發送命令查看文件列表
有現成的
sun.net.ftp.FtpClient類
晚上回去給你寫個例子。有問題的話,別用追回,我現在也不知道代碼有多少。
用問題的補充。