- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.net,自定义协议实现
篇一:自定义简单的协议用socket实现文件上传
3、服务端定义一个ServerSocket 监听一个某个端口,当有上传请求到来时就 在线程池中取一个线程处理请求。
package com.my.socket.server;
import java.io.File;
import java.io.IOException;
import .ServerSocket;
import .Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import com.my.socket.constant.MyServerConstant;
public final class MySockerServer {
public static void main(String[] args) throws IOException {
final File savedir = new File(MyServerConstant.SAVE_DIRECTORY); if (!savedir.exists()) savedir.mkdir(); ServerSocket myServerSocket = new ServerSocket(MyServerConstant.PORT, 50); while (true) { Socket mySocket = myServerSocket.accept();
ExecutorService executorService = Executors.newFixedThreadPool(8); executorService.execute(new ServerHander(mySocket, savedir)); }
}
}
4、服务端处理上传的线程类:
package com.my.socket.server;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import .Socket;
import java.util.HashMap;
import java.util.Map;
import com.my.socket.constant.MyServerConstant;
import com.my.socket.util.StreamUtil;
public class ServerHander implements Runnable {
private Socket mySocket = null;
private File saveFileDirectory = null;
public ServerHander(Socket mySocket, File saveFileDirectory) {
super(); this.mySocket = mySocket; this.saveFileDirectory = saveFileDirectory;
}
@Override
public void run() {
try { InputStream in = mySocket.getInputStream(); byte[] headData = StreamUtil.readHead(in);//上传的文件头读入数组 Maplt;String, String headParamter = this.pareHeader(new String(headData, MyServerConstant.UTF_8)); File saveFile = new File(this.saveFileDirectory,headParamter.get(MyServerConstant.FILE_NAME)); if (!saveFile.exists()) saveFile.createNewFile(); OutputStream fos = new FileOutputStream(saveFile); byte[] buffer = new byte[1024];
while ((len = in.read(buffer, 0, 1024)) != -1) { fos.write(buffe
您可能关注的文档
- 非常1+1趣味大赛活动策划书.doc
- 非全日制用工合同_0.doc
- 音专毕业生求职信.doc
- 非诉讼事务委托代理协议_0.doc
- 音乐外出学习心得.doc
- 项目合作开发合同样本2016.doc
- 项目融资授权协议_0.doc
- 项目部工程经理辞职申请书范文.doc
- 预备党员2016一季度思想汇报范本.doc
- 预备党员2016三季度思想汇报范文.doc
- 第13课《唐诗五首》教学设计 2024—2025学年统编版语文八年级上册.docx
- 大单元教学【核心素养目标】7.docx
- 第15课在线服务(教学设计)2023-2024学年三年级下册信息技术江西科学技术版.docx
- 第4课 计算机安全(教案)- 五年级下册信息技术 浙江摄影版.docx
- 固态电池行业市场前景及投资研究报告:聚焦性能成本,固态电池产业化提速.pdf
- 博众精工-市场前景及投资研究报告:3C主业,苹果创新,自动化率提升,业务多元化.pdf
- Vertiv-市场前景及投资研究报告-数据中心投资浪潮,平台化散热电源方案.pdf
- 5.1《生物的多样性、统一性和进化》教案.docx
- 湘教版地理七年级上册 第二章 第二节 世界的海陆分布 教案.docx
- 2023-2024学年人教版物理八年级上册5.2生活中的透镜教案.docx
最近下载
- 高中英语_必修一Unit5 Reading and Thinking教学设计学情分析教材分析课后反思.doc
- 探秘会计信息处理智慧树知到答案章节测试2023年青岛滨海学院.docx
- 2024年“大学习”活动线上培训栏目公共卫生与预防医学继续教育题库与答案第三套.docx VIP
- 《公务接待实务》课件.pptx VIP
- 污水管网监理投标方案(技术标).docx
- 华为H12-611 V1.0 HCIA-openEuler认证备考试题库资料及答案(高分刷题版).pdf
- 《公路工程资料员一本通》.docx
- RockwellAutomation罗克韦尔1794-IB8, 1794-IB16, 1794-IB32 Installation用户手册说明书.pdf
- 软件定义安全 .ppt
- 风景名胜景区道路清卫保洁服务重点难点分析.docx
文档评论(0)