jav a 网络文件传输的实现——Socket 编程 All Rights Reserv ed! 本程序分为服务器和客户端两个小程序。 主要实现的功能是: 客户端向服务器端请求一个文件的传输连接, 服务器接收到请求命令后,要求客户端发送用户名和密码, 如果正确,就执行传输文件的过程,客户端接收完后, 保存到一个文件中并在屏幕上显示出来。 设计原理: 服务器端建立一个SocketServ er 等待客户端的连接, 每来一个客户端的请求连接,就创建一个新的线程对其进行单独服务, 然后继续等待其他的客户端的连接。 客户端向服务器发送文件传输请求,在服务器端要求鉴权时, 输入用户名和密码发送给服务器验证,如果验证通过就开始文件传输。 使用方法,如果需要重新编译的话输入以下两条命令: jav ac SendFileSocket.jav a jav ac SendFileClient.jav a 在命令行下的运行方式: 服务器端: jav a SendFileSocket 客户端: jav a SendFileClient serv erIPAddress 例如:jav a SendFileClient 192.168.0.153 服务器程序: //package zieckey.socket; import java.net.*; import java.io.*; /** * 一个简单的多线程服务器程序,用于传输文件 * * @author zieckey */ public class SendFileSocket extends Thread { /** * @param args */ public static void main( String[] args ) { /*if ( args.length > 0 ) // 如果有参数输入就启动服务器程序 { server( ); } else { // 否则启动客户端进程 client( ); }*/ server( );//启动服务器程序 } private static final int PORT = 6000; private Socket s; private static final String name = "zieckey"; private static final String password = "123456"; public SendFileSocket( Socket s ) { this.s = s; } public void run() { try { OutputStream os = s.getOutputStream( ); InputStream is = s.getInputStream( ); os.write( "Hello,welcome you!".getBytes( ) ); byte[] buf = new byte[100]; while ( true ) { int len = is.read( buf ); String revStr = new String( buf, 0, len ); System.out.println( "This client wants to "+revStr ); String fileName; if ( revStr.startsWith( "get " ) )//表明客户...