客户端向服务端发送数据—网络编程.doc

客户端向服务端发送数据—网络编程.doc

ID:59524661

大小:19.50 KB

页数:7页

时间:2020-11-07

客户端向服务端发送数据—网络编程.doc_第1页
客户端向服务端发送数据—网络编程.doc_第2页
客户端向服务端发送数据—网络编程.doc_第3页
客户端向服务端发送数据—网络编程.doc_第4页
客户端向服务端发送数据—网络编程.doc_第5页
资源描述:

《客户端向服务端发送数据—网络编程.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、服务器端源码:importjava.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.net.ServerSocket;importjava.net.Socket;/****文件名:ServerReceive.java*实现功能:作为服务器接收客户端

2、发送的文件**具体实现过程:*1、建立SocketServer,等待客户端的连接*2、当有客户端连接的时候,按照双方的约定,这时要读取一行数据*其中保存客户端要发送的文件名和文件大小信息*3、根据文件名在本地创建文件,并建立好流通信*4、循环接收数据包,将数据包写入文件*5、当接收数据的长度等于提前文件发过来的文件长度,即表示文件接收完毕,关闭文件*6、文件接收工作结束publicclassServerReceive{publicstaticvoidmain(String[]args){/**与服务器建立连接的通信句柄*/ServerSocketss=null;Sockets=null;/*

3、*定义用于在接收后在本地创建的文件对象和文件输出流对象*/Filefile=null;FileOutputStreamfos=null;/**定义输入流,使用socket的inputStream对数据包进行输入*/InputStreamis=null;/**定义byte数组来作为数据包的存储数据包*/byte[]buffer=newbyte[4096*5];/**用来接收文件发送请求的字符串*/Stringcomm=null;/**建立socekt通信,等待服务器进行连接*/try{ss=newServerSocket(4004);s=ss.accept();}catch(IOExcepti

4、one){e.printStackTrace();}/**读取一行客户端发送过来的约定信息*/try{InputStreamReaderisr=newInputStreamReader(s.getInputStream());BufferedReaderbr=newBufferedReader(isr);comm=br.readLine();}catch(IOExceptione){System.out.println("服务器与客户端断开连接");}/**开始解析客户端发送过来的请求命令*/intindex=comm.indexOf("/#");/**判断协议是否为发送文件的协议*/Str

5、ingxieyi=comm.substring(0,index);if(!xieyi.equals("111")){System.out.println("服务器收到的协议码不正确");return;}/**解析出文件的名字和大小*/comm=comm.substring(index+2);index=comm.indexOf("/#");Stringfilename=comm.substring(0,index).trim();Stringfilesize=comm.substring(index+2).trim();/**创建空文件,用来进行接收文件*/file=newFile(file

6、name);if(!file.exists()){try{file.createNewFile();}catch(IOExceptione){System.out.println("服务器端创建文件失败");}}else{/**在此也可以询问是否覆盖*/System.out.println("本路径已存在相同文件,进行覆盖");}/**【以上就是客户端代码中写到的服务器的准备部分】*//***服务器接收文件的关键代码*/try{/**将文件包装到文件输出流对象中*/fos=newFileOutputStream(file);longfile_size=Long.parseLong(files

7、ize);is=s.getInputStream();/**size为每次接收数据包的长度*/intsize=0;/**count用来记录已接收到文件的长度*/longcount=0;/**使用while循环接收数据包*/while(count

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。