クライアント (PHP):
send.php
[php]
$fp = fsockopen("127.0.0.1", 1024, $errno, $errstr,
);
$filename = '2012_07_23.zip' //送信するファイル
;
fwrite($fp, $filename . "rn"); // Java 側で .readLine() を使用します。最初の行はファイル名です。
$ハンドル = fopen($ファイル名, "r");
$contents = fread($ハンドル, ファイルサイズ($ファイル名));
//fwrite($fp,$contents); //小さいファイルはこのように送信できますが、大きいファイルはセグメントに分割する必要があります
$data_size = 1024 * 1 //毎回 1M;
$data_count = ceil( strlen($contents) / $data_size ) //データはいくつあるか
for( $i = 0; $i
{
$data = substr( $contents, $i * $data_size, $data_size ) //送信ソケットに書き込みます
fwrite($fp,$data); www.2cto.com
}
fclose($fp);
?>
サーバー (JAVA):
MyApp.java
[ジャワ]
パブリッククラス MyApp
{
公開 MyApp()
{
x = 0;
}
パブリック static void main(String args[]) {
int i = 1、ポート = 1024;
サーバーソケットサーバー=null;
ソケットクライアント = null;
試してみましょう{
サーバー=新しいサーバーソケット(ポート);
System.out.println("Web サーバーはポートをリッスンしています" + server.getLocalPort());
for(;;){
client=server.accept();
//クライアントの接続リクエストを受け入れる
new WebThread(client,i).start();
i++;
}catch(Exception e){System.out.println(e);}
}
WebThread.java
[ジャワ]
java.io.* をインポートします。
java.net.* をインポートします。
java.util.Date をインポートします。
クラス WebThread は Thread{
を拡張します
Socket ソケット;//Web ブラウザに接続するためのソケット ワード
int カウンタ;//カウンタ
パブリック WebThread(Socket cl,int c){
ソケット=cl;
カウンタ=c;
}
public void run()//スレッド本体
{
試してみてください
DataInputStream 入力ストリーム = null;
試してみてください
inputStream = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
}catch(例外 e)
試してみてください
文字列 savePath = "E:\";
intbufferSize = 8192;
byte[] buf = 新しいバイト[bufferSize];
文字列ファイル名 = new String();
ファイル名 = inputStream.readLine();
String saveFilePath = new String();
saveFilePath = savePath + "\" + ファイル名
DataOutputStream fileOut = new DataOutputStream(new BufferedOutputStream(new BufferedOutputStream(new FileOutputStream(saveFilePath))));
System.out.println("ファイルの長い名前: " + ファイル名);
int 読み取り = 0;
If (inputStream != null)
read = inputStream.read(buf);
If (読み取り == -1) {
壊す;
//System.out.println(buf.toString());fileOut.write(buf, 0, read);
System.out.println("受信完了、ファイルは次の名前で保存されました" + saveFilePath + "n");
fileOut.flush();
fileOut.close();
inputStream.close();
} catch (例外 e) {
System.out.println("メッセージ受信エラー" + e.toString() + "n");
戻る
}catch(例外 e){
}
}
}
作者: junqing124
http://www.bkjia.com/PHPjc/478073.html
http://www.bkjia.com/PHPjc/478073.html