導航:首頁 > 配伺服器 > java如何輸入給伺服器

java如何輸入給伺服器

發布時間:2024-02-03 16:15:56

『壹』 java中如何實現從客戶端發送文件到伺服器端

伺服器端源碼:x0dx0aimport java.io.BufferedReader;x0dx0aimport java.io.File;x0dx0aimport java.io.FileNotFoundException;x0dx0aimport java.io.FileOutputStream;x0dx0aimport java.io.IOException;x0dx0aimport java.io.InputStream;x0dx0aimport java.io.InputStreamReader;x0dx0aimport java.net.ServerSocket;x0dx0aimport java.net.Socket;x0dx0ax0dx0a/**x0dx0a *x0dx0a * 文件名:ServerReceive.javax0dx0a * 實現功能:作為伺服器接收客戶端發送的文件x0dx0a *x0dx0a * 具體實現過程:x0dx0a * 1、建立SocketServer,等待客戶端的連接x0dx0a * 2、當有客戶端連接的時候,按照雙方的約定,這時要讀取一行數據x0dx0a * 其中保存客戶端要發送的文件名和文件大小信息x0dx0a * 3、根據文件名在本地創建文件,並建立好流通信x0dx0a * 4、循環接收數據包,將數據包寫入文件x0dx0a * 5、當接收數據的長度等於提前文件發過來的文件長度,即表示文件接收完畢,關閉文件x0dx0a * 6、文件接收工作結束x0dx0ax0dx0apublic class ServerReceive {x0dx0a x0dx0a public static void main(String[] args) {x0dx0a x0dx0a /**與伺服器建立連接的通信句柄*/x0dx0a ServerSocket ss = null;x0dx0a Socket s = null;x0dx0a x0dx0a /**定義用於在接收後在本地創建的文件對象和文件輸出流對象*/x0dx0a File file = null;x0dx0a FileOutputStream fos = null;x0dx0a x0dx0a /**定義輸入流,使用socket的inputStream對數據包進行輸入*/x0dx0a InputStream is = null;x0dx0a x0dx0a /**定義byte數組來作為數據包的存儲數據包*/x0dx0a byte[] buffer = new byte[4096 * 5];x0dx0a x0dx0a /**用來接收文件發送請求的字元串*/x0dx0a String comm = null;x0dx0ax0dx0a/**建立socekt通信,等待伺服器進行連接*/x0dx0a try {x0dx0a ss = new ServerSocket(4004);x0dx0a s = ss.accept();x0dx0a } catch (IOException e) {x0dx0a e.printStackTrace();x0dx0a }x0dx0ax0dx0a/**讀取一行客戶端發送過來的約定信息*/x0dx0a try {x0dx0a InputStreamReader isr = new InputStreamReader(s.getInputStream());x0dx0a BufferedReader br = new BufferedReader(isr);x0dx0a comm = br.readLine();x0dx0a } catch (IOException e) {x0dx0a System.out.println("伺服器與客戶端斷開連接");x0dx0a }x0dx0a x0dx0a /**開始解析客戶端發送過來的請求命令*/x0dx0a int index = comm.indexOf("/#");x0dx0a x0dx0a /**判斷協議是否為發送文件的協議*/x0dx0a String xieyi = comm.substring(0, index);x0dx0a if(!xieyi.equals("111")){x0dx0a System.out.println("伺服器收到的協議碼不正確");x0dx0a return;x0dx0a }x0dx0a x0dx0a /**解析出文件的名字和大小*/x0dx0a comm = comm.substring(index + 2);x0dx0a index = comm.indexOf("/#");x0dx0a String filename = comm.substring(0, index).trim();x0dx0a String filesize = comm.substring(index + 2).trim();x0dx0ax0dx0a/**創建空文件,用來進行接收文件*/x0dx0a file = new File(filename);x0dx0a if(!file.exists()){x0dx0a try {x0dx0a file.createNewFile();x0dx0a } catch (IOException e) {x0dx0a System.out.println("伺服器端創建文件失敗");x0dx0a }x0dx0a }else{x0dx0a /**在此也可以詢問是否覆蓋*/x0dx0a System.out.println("本路徑已存在相同文件,進行覆蓋");x0dx0a }x0dx0a x0dx0a /**【以上就是客戶端代碼中寫到的伺服器的准備部分】*/x0dx0ax0dx0a/**x0dx0a * 伺服器接收文件的關鍵代碼*/x0dx0a try {x0dx0a /**將文件包裝到文件輸出流對象中*/x0dx0a fos = new FileOutputStream(file);x0dx0a long file_size = Long.parseLong(filesize);x0dx0a is = s.getInputStream();x0dx0a /**size為每次接收數據包的長度*/x0dx0a int size = 0;x0dx0a /**count用來記錄已接收到文件的長度*/x0dx0a long count = 0;x0dx0a x0dx0a /**使用while循環接收數據包*/x0dx0a while(count < file_size){x0dx0a /**從輸入流中讀取一個數據包*/x0dx0a size = is.read(buffer);x0dx0a x0dx0a /**將剛剛讀取的數據包寫到本地文件中去*/x0dx0a fos.write(buffer, 0, size);x0dx0a fos.flush();x0dx0a x0dx0a /**將已接收到文件的長度+size*/x0dx0a count += size;x0dx0a System.out.println("伺服器端接收到數據包,大小為" + size);x0dx0a }x0dx0a x0dx0a } catch (FileNotFoundException e) {x0dx0a System.out.println("伺服器寫文件失敗");x0dx0a } catch (IOException e) {x0dx0a System.out.println("伺服器:客戶端斷開連接");x0dx0a }finally{x0dx0a /**x0dx0a * 將打開的文件關閉x0dx0a * 如有需要,也可以在此關閉socket連接x0dx0a * */x0dx0a try {x0dx0a if(fos != null)x0dx0a fos.close();x0dx0a } catch (IOException e) {x0dx0a e.printStackTrace();x0dx0a }//catch (IOException e)x0dx0a }//finallyx0dx0a x0dx0a }//public static void main(String[] args)x0dx0a}//public class ServerReceivex0dx0ax0dx0a客戶端源碼:x0dx0ax0dx0aimport java.io.File;x0dx0aimport java.io.FileInputStream;x0dx0aimport java.io.FileNotFoundException;x0dx0aimport java.io.IOException;x0dx0aimport java.io.OutputStream;x0dx0aimport java.io.PrintStream;x0dx0aimport java.net.Socket;x0dx0ax0dx0a/**x0dx0a *x0dx0a * 文件名:ClientSend.javax0dx0a * 實現功能:作為客戶端向伺服器發送一個文件x0dx0a *x0dx0a * 具體實現過程:x0dx0a * 1、建立與伺服器端的連接,IP:127.0.0.1, port:4004x0dx0a * 2、將文件的名字和大小通過自定義的文件傳輸協議,發送到伺服器x0dx0a * 3、循環讀取本地文件,將文件打包發送到數據輸出流中x0dx0a * 4、關閉文件,結束傳輸x0dx0a *x0dx0a * */x0dx0a x0dx0apublic class ClientSend {x0dx0a x0dx0a public static void main(String[] args) {x0dx0a x0dx0a /**與伺服器建立連接的通信句柄*/x0dx0a Socket s = null;x0dx0a x0dx0a /**定義文件對象,即為要發送的文件x0dx0a * 如果使用絕對路徑,不要忘記使用'/'和'\'的區別x0dx0a * 具體區別,請讀者自行查詢x0dx0a * */x0dx0a File sendfile = new File("API.CHM");x0dx0a /**定義文件輸入流,用來打開、讀取即將要發送的文件*/x0dx0a FileInputStream fis = null;x0dx0a /**定義byte數組來作為數據包的存儲數據包*/x0dx0a byte[] buffer = new byte[4096 * 5];x0dx0a x0dx0a /**定義輸出流,使用socket的outputStream對數據包進行輸出*/x0dx0a OutputStream os = null;x0dx0ax0dx0a/**檢查要發送的文件是否存在*/x0dx0a if(!sendfile.exists()){x0dx0a System.out.println("客戶端:要發送的文件不存在");x0dx0a return;x0dx0a }x0dx0ax0dx0a/**與伺服器建立連接*/x0dx0a try {x0dx0a s = new Socket("127.0.0.1", 4004);x0dx0a }catch (IOException e) {x0dx0a System.out.println("未連接到伺服器");x0dx0a }x0dx0a x0dx0a /**用文件對象初始化fis對象x0dx0a * 以便於可以提取出文件的大小x0dx0a * */x0dx0a try {x0dx0a fis = new FileInputStream(sendfile);x0dx0a } catch (FileNotFoundException e1) {x0dx0a e1.printStackTrace();x0dx0a }x0dx0ax0dx0a/**首先先向伺服器發送關於文件的信息,以便於伺服器進行接收的相關准備工作x0dx0a * 具體的准備工作,請查看伺服器代碼。x0dx0a *x0dx0a * 發送的內容包括:發送文件協議碼(此處為111)/#文件名(帶後綴名)/#文件大小x0dx0a * */x0dx0a try {x0dx0a PrintStream ps = new PrintStream(s.getOutputStream());x0dx0a ps.println("111/#" + sendfile.getName() + "/#" + fis.available());x0dx0a ps.flush();x0dx0a } catch (IOException e) {x0dx0a System.out.println("伺服器連接中斷");x0dx0a }x0dx0ax0dx0a/**x0dx0a * 此處睡眠2s,等待伺服器把相關的工作準備好x0dx0a * 也是為了保證網路的延遲x0dx0a * 讀者可自行選擇添加此代碼x0dx0a * */x0dx0a try {x0dx0a Thread.sleep(2000);x0dx0a } catch (InterruptedException e1) {x0dx0a e1.printStackTrace();x0dx0a }x0dx0ax0dx0a/**之前的准備工作結束之後x0dx0a * 下面就是文件傳輸的關鍵代碼x0dx0a * */x0dx0a try {x0dx0a x0dx0a /**獲取socket的OutputStream,以便向其中寫入數據包*/x0dx0a os = s.getOutputStream();x0dx0a x0dx0a /** size 用來記錄每次讀取文件的大小*/x0dx0a int size = 0;x0dx0a x0dx0a /**使用while循環讀取文件,直到文件讀取結束*/x0dx0a while((size = fis.read(buffer)) != -1){x0dx0a System.out.println("客戶端發送數據包,大小為" + size);x0dx0a /**向輸出流中寫入剛剛讀到的數據包*/x0dx0a os.write(buffer, 0, size);x0dx0a /**刷新一下*/x0dx0a os.flush();x0dx0a }x0dx0a } catch (FileNotFoundException e) {x0dx0a System.out.println("客戶端讀取文件出錯");x0dx0a } catch (IOException e) {x0dx0a System.out.println("客戶端輸出文件出錯");x0dx0a }finally{x0dx0a x0dx0a /**x0dx0a * 將打開的文件關閉x0dx0a * 如有需要,也可以在此關閉socket連接x0dx0a * */x0dx0a try {x0dx0a if(fis != null)x0dx0a fis.close();x0dx0a } catch (IOException e) {x0dx0a System.out.println("客戶端文件關閉出錯");x0dx0a }//catch (IOException e)x0dx0a }//finallyx0dx0a x0dx0a }//public static void main(String[] args)x0dx0a}//public class ClientSend

『貳』 java swing 登陸界面做好之後要在伺服器端進行驗證 怎麼將頁面上輸入的數值得到發送至伺服器呢

你好,你可以直接把你的輸入的值存到request域中,通過get或者post請求發送至伺服器。你可以試試,希望能幫到你。

還有,你到底是打算傳到main方法中還是傳到伺服器那端啊?能說明白嗎?

『叄』 java客戶端如何向伺服器txt文件寫入信息

客戶端要向伺服器txt文件寫入信息,必須得調用伺服器端得java方法,io讀寫txt文件。客戶端用非同步調用效果更好,客戶端非同步傳遞要寫入得信息到伺服器上,由伺服器上得方法執行寫入

『肆』 java中如何實現從客戶端發送文件到伺服器端

伺服器端源碼:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

/**
*
* 文件名:ServerReceive.java
* 實現功能:作為伺服器接收客戶端發送的文件
*
* 具體實現過程:
* 1、建立SocketServer,等待客戶端的連接
* 2、當有客戶端連接的時候,按照雙方的約定,這時要讀取一行數據
* 其中保存客戶端要發送的文件名和文件大小信息
* 3、根據文件名在本地創建文件,並建立好流通信
* 4、循環接收數據包,將數據包寫入文件
* 5、當接收數據的長度等於提前文件發過來的文件長度,即表示文件接收完畢,關閉文件
* 6、文件接收工作結束

public class ServerReceive {

public static void main(String[] args) {

/**與伺服器建立連接的通信句柄*/
ServerSocket ss = null;
Socket s = null;

/**定義用於在接收後在本地創建的文件對象和文件輸出流對象*/
File file = null;
FileOutputStream fos = null;

/**定義輸入流,使用socket的inputStream對數據包進行輸入*/
InputStream is = null;

/**定義byte數組來作為數據包的存儲數據包*/
byte[] buffer = new byte[4096 * 5];

/**用來接收文件發送請求的字元串*/
String comm = null;

/**建立socekt通信,等待伺服器進行連接*/
try {
ss = new ServerSocket(4004);
s = ss.accept();
} catch (IOException e) {
e.printStackTrace();
}

/**讀取一行客戶端發送過來的約定信息*/
try {
InputStreamReader isr = new InputStreamReader(s.getInputStream());
BufferedReader br = new BufferedReader(isr);
comm = br.readLine();
} catch (IOException e) {
System.out.println("伺服器與客戶端斷開連接");
}

/**開始解析客戶端發送過來的請求命令*/
int index = comm.indexOf("/#");

/**判斷協議是否為發送文件的協議*/
String xieyi = comm.substring(0, index);
if(!xieyi.equals("111")){
System.out.println("伺服器收到的協議碼不正確");
return;
}

/**解析出文件的名字和大小*/
comm = comm.substring(index + 2);
index = comm.indexOf("/#");
String filename = comm.substring(0, index).trim();
String filesize = comm.substring(index + 2).trim();

/**創建空文件,用來進行接收文件*/
file = new File(filename);
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
System.out.println("伺服器端創建文件失敗");
}
}else{
/**在此也可以詢問是否覆蓋*/
System.out.println("本路徑已存在相同文件,進行覆蓋");
}

/**【以上就是客戶端代碼中寫到的伺服器的准備部分】*/

/**
* 伺服器接收文件的關鍵代碼*/
try {
/**將文件包裝到文件輸出流對象中*/
fos = new FileOutputStream(file);
long file_size = Long.parseLong(filesize);
is = s.getInputStream();
/**size為每次接收數據包的長度*/
int size = 0;
/**count用來記錄已接收到文件的長度*/
long count = 0;

/**使用while循環接收數據包*/
while(count < file_size){
/**從輸入流中讀取一個數據包*/
size = is.read(buffer);

/**將剛剛讀取的數據包寫到本地文件中去*/
fos.write(buffer, 0, size);
fos.flush();

/**將已接收到文件的長度+size*/
count += size;
System.out.println("伺服器端接收到數據包,大小為" + size);
}

} catch (FileNotFoundException e) {
System.out.println("伺服器寫文件失敗");
} catch (IOException e) {
System.out.println("伺服器:客戶端斷開連接");
}finally{
/**
* 將打開的文件關閉
* 如有需要,也可以在此關閉socket連接
* */
try {
if(fos != null)
fos.close();
} catch (IOException e) {
e.printStackTrace();
}//catch (IOException e)
}//finally

}//public static void main(String[] args)
}//public class ServerReceive

客戶端源碼:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;

/**
*
* 文件名:ClientSend.java
* 實現功能:作為客戶端向伺服器發送一個文件
*
* 具體實現過程:
* 1、建立與伺服器端的連接,IP:127.0.0.1, port:4004
* 2、將文件的名字和大小通過自定義的文件傳輸協議,發送到伺服器
* 3、循環讀取本地文件,將文件打包發送到數據輸出流中
* 4、關閉文件,結束傳輸
*
* */

public class ClientSend {

public static void main(String[] args) {

/**與伺服器建立連接的通信句柄*/
Socket s = null;

/**定義文件對象,即為要發送的文件
* 如果使用絕對路徑,不要忘記使用'/'和'\'的區別
* 具體區別,請讀者自行查詢
* */
File sendfile = new File("API.CHM");
/**定義文件輸入流,用來打開、讀取即將要發送的文件*/
FileInputStream fis = null;
/**定義byte數組來作為數據包的存儲數據包*/
byte[] buffer = new byte[4096 * 5];

/**定義輸出流,使用socket的outputStream對數據包進行輸出*/
OutputStream os = null;

/**檢查要發送的文件是否存在*/
if(!sendfile.exists()){
System.out.println("客戶端:要發送的文件不存在");
return;
}

/**與伺服器建立連接*/
try {
s = new Socket("127.0.0.1", 4004);
}catch (IOException e) {
System.out.println("未連接到伺服器");
}

/**用文件對象初始化fis對象
* 以便於可以提取出文件的大小
* */
try {
fis = new FileInputStream(sendfile);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}

/**首先先向伺服器發送關於文件的信息,以便於伺服器進行接收的相關准備工作
* 具體的准備工作,請查看伺服器代碼。
*
* 發送的內容包括:發送文件協議碼(此處為111)/#文件名(帶後綴名)/#文件大小
* */
try {
PrintStream ps = new PrintStream(s.getOutputStream());
ps.println("111/#" + sendfile.getName() + "/#" + fis.available());
ps.flush();
} catch (IOException e) {
System.out.println("伺服器連接中斷");
}

/**
* 此處睡眠2s,等待伺服器把相關的工作準備好
* 也是為了保證網路的延遲
* 讀者可自行選擇添加此代碼
* */
try {
Thread.sleep(2000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}

/**之前的准備工作結束之後
* 下面就是文件傳輸的關鍵代碼
* */
try {

/**獲取socket的OutputStream,以便向其中寫入數據包*/
os = s.getOutputStream();

/** size 用來記錄每次讀取文件的大小*/
int size = 0;

/**使用while循環讀取文件,直到文件讀取結束*/
while((size = fis.read(buffer)) != -1){
System.out.println("客戶端發送數據包,大小為" + size);
/**向輸出流中寫入剛剛讀到的數據包*/
os.write(buffer, 0, size);
/**刷新一下*/
os.flush();
}
} catch (FileNotFoundException e) {
System.out.println("客戶端讀取文件出錯");
} catch (IOException e) {
System.out.println("客戶端輸出文件出錯");
}finally{

/**
* 將打開的文件關閉
* 如有需要,也可以在此關閉socket連接
* */
try {
if(fis != null)
fis.close();
} catch (IOException e) {
System.out.println("客戶端文件關閉出錯");
}//catch (IOException e)
}//finally

}//public static void main(String[] args)
}//public class ClientSend

『伍』 用java 寫一個登陸的功能,輸入賬戶和密碼,發送給伺服器端,這個消息怎麼封裝

都不知道你的伺服器是web伺服器 還是socket通訊伺服器
如果是web伺服器 那就如婉月工作室所說的 那麼發送
如果是socket 伺服器 那就在伺服器上建立socket服務端
在登錄機上建立socket 客戶端
自定義通訊協議 比如 發送 login#admin#000111
服務端就可以識別為 是登錄指令 用戶名 admin 密碼 000111
伺服器訪問資料庫 得到結果 返回 login#1 或者 login#0 那客戶端就知道驗證是否成功了
這是最簡單的規約

閱讀全文

與java如何輸入給伺服器相關的資料

熱點內容
php程序修改 瀏覽:680
下列能查找文件或文件夾的操作是 瀏覽:312
遙感科學與技術演算法待遇 瀏覽:134
cad標注半徑命令 瀏覽:367
打卡領購app邀請碼怎麼填 瀏覽:336
編程訪問許可權沖突 瀏覽:152
桌面運維如何轉伺服器運維 瀏覽:627
tomcat如何設置伺服器 瀏覽:679
php編譯支持mysql 瀏覽:817
mir4手游安卓版怎麼玩國際服 瀏覽:23
伺服器程序怎麼刪除 瀏覽:657
阿里年薪70萬程序員名單照片 瀏覽:575
android定製輸入法 瀏覽:758
linux下編譯android 瀏覽:311
電影重建文件夾 瀏覽:981
第五人格香香解壓 瀏覽:626
我的世界手機版推薦什麼伺服器 瀏覽:706
安卓怎麼下載空戰 瀏覽:586
程序員賣房入市 瀏覽:117
android視頻播放窗口 瀏覽:288