预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

服务器端: packagesterning; importjava.io.BufferedInputStream; importjava.io.DataInputStream; importjava.io.DataOutputStream; importjava.io.File; importjava.io.FileInputStream; importjava.net.ServerSocket; importjava.net.Socket; publicclassServerTest{ intport=8821; voidstart(){ Sockets=null; try{ ServerSocketss=newServerSocket(port); while(true){ //选择进行传输的文件 StringfilePath="D:lib.rar"; Filefi=newFile(filePath); System.out.println("文件长度:"+(int)fi.length()); //publicSocketaccept()throws //IOException侦听并接受到此套接字的连接。此方法在进行连接之前一直阻塞。 s=ss.accept(); System.out.println("建立socket链接"); DataInputStreamdis=newDataInputStream(newBufferedInputStream( s.getInputStream())); dis.readByte(); DataInputStreamfis=newDataInputStream(newBufferedInputStream( newFileInputStream(filePath))); DataOutputStreamps=newDataOutputStream(s.getOutputStream()); //将文件名及长度传给客户端。这里要真正适用所有平台,例如中文名的处理, //还需要加工,具体可以参见ThinkInJava4th里有现成的代码。 ps.writeUTF(fi.getName()); ps.flush(); ps.writeLong((long)fi.length()); ps.flush(); intbufferSize=8192; byte[]buf=newbyte[bufferSize]; while(true){ intread=0; if(fis!=null){ read=fis.read(buf); } if(read==-1){ break; } ps.write(buf,0,read); } ps.flush(); //注意关闭socket链接哦,不然客户端会等待server的数据过来, //直到socket超时,导致数据不完整。 fis.close(); s.close(); System.out.println("文件传输完成"); } }catch(Exceptione){ e.printStackTrace(); } } publicstaticvoidmain(Stringarg[]){ newServerTest().start(); } } 2.sooket的Util类 packagesterning; importjava.net.*; importjava.io.*; publicclassClientSocket{ privateStringip; privateintport; privateSocketsocket=null; DataOutputStreamout=null; DataInputStreamgetMessageStream=null; publicClientSocket(Stringip,intport){ this.ip=ip; this.port=port; } /***//** *创建socket连接 * *@throwsException *exception */ publicvoidCreateConnection()throwsException{ try{ socket=newSocket(ip,port); }catch(Exceptione){ e.printStackTrace(); if(socket!=null) socket.close(); throwe; }finally{ } } publicvoidsendMessage(StringsendMessage)throwsException{ try{ out=newDataOutputStre