All Rights Reserved!
本程序分为服务器和客户端两个小程序。
主要实现的功能是:
客户端向服务器端请求一个文件的传输连接,
服务器接收到请求命令后,要求客户端发送用户名和密码,
如果正确,就执行传输文件的过程,客户端接收完后,
保存到一个文件中并在屏幕上显示出来。
设计原理:
服务器端建立一个SocketServer等待客户端的连接,
每来一个客户端的请求连接,就创建一个新的线程对其进行单独服务,
然后继续等待其他的客户端的连接。
客户端向服务器发送文件传输请求,在服务器端要求鉴权时,
输入用户名和密码发送给服务器验证,如果验证通过就开始文件传输。
使用方法,如果需要重新编译的话输入以下两条命令:
javac
javac
在命令行下的运行方式:
服务器端:
java SendFileSocket
客户端:
java SendFileClient serverIPAddress
例如:java SendFileClient
服务器程序:
//package ;
import .*;
import .*;
/**
* 一个简单的多线程服务器程序,用于传输文件
*
* ***@author zieckey
*/
public class SendFileSocket extends Thread
{
/**
* ***@param args
*/
public static void main( String[] args )
{
/*if ( > 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 )
{
= s;
}
public void run()
{
try
{
OutputStream os = ( );
InputStream is = ( );
( "Hello,e you!".getBytes( ) );
byte[] buf = new byte[100];
while ( true )
{
int len = ( buf );
String revStr = new String( buf, 0, len );
( "This client wants to "+revStr );
String fileName;
if ( ( "get " ) )//表明客户端请求传输一个文件
{
( "Please input your name and password! Using the format:******@password"
.
[指导]java网络文件传输的实现 来自淘豆网m.daumloan.com转载请标明出处.