在字符界面下,利用socket从client端向server端传送文件。
java version "1.6.0_26
server:
import java.io.*;
import java.net.*;
public class Server {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ServerSocket serverSocket = null;
Socket socket = null;
String string = null;
DataOutputStream outputStream = null;
DataInputStream inputStream = null;
try {
serverSocket = new ServerSocket(4441);
} catch (IOException e1) {
// TODO: handle exception
System.out.println("ERROR1: " + e1);
}
try {
while (true) {
try {
socket = serverSocket.accept(); // block
inputStream = new DataInputStream(socket.getInputStream());
outputStream = new DataOutputStream(
socket.getOutputStream());
outputStream.writeUTF("Hello, I am server!");
while ((string = inputStream.readUTF()) != null) {
RandomAccessFile accessFile = new RandomAccessFile(
"rec.txt", "rw");
accessFile.seek(accessFile.length());
accessFile.writeBytes(string + "\n");
accessFile.close();
}
} catch (EOFException e2) {
inputStream.close();
outputStream.close();
}
}
} catch (IOException e3) {
// TODO: handle exception
System.out.println("ERROR2: " + e3);
}
}
}
client:
import java.io.*;
import java.net.*;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String string = null;
Socket mySocket;
DataInputStream inputStream = null;
DataOutputStream outputStream = null;
try {
// create a connect
mySocket = new Socket(InetAddress.getLocalHost(), 4441);
inputStream = new DataInputStream(mySocket.getInputStream());
outputStream = new DataOutputStream(mySocket.getOutputStream());
// receive a string from server
string = inputStream.readUTF();
if (string != null)
System.out.println(string);
// send a file to server
String FilePath;
InputStreamReader inputStreamReader = new InputStreamReader(
System.in);
BufferedReader bufferedReader = new BufferedReader(
inputStreamReader);
System.out.println("please input a file path:");
FilePath = bufferedReader.readLine();
File file = new File(FilePath);
if (file.exists()) {
if (file.isDirectory()) {
System.out.println(FilePath + " is a directory.");
} else {
RandomAccessFile accessFile = new RandomAccessFile(file,
"r");
String string2 = null;
while ((string2 = accessFile.readLine()) != null)
outputStream.writeUTF(string2);
inputStream.close();
outputStream.close();
mySocket.close();
}
} else
System.out.println(FilePath + " is not exit");
} catch (IOException ex) {
// TODO: handle exception
System.out.println("ERROR: " + ex);
}
}
}