用java socket实现一个服务器对多个客户端的文件传输

用java socket实现一个服务器对多个客户端的文件传输,第1张

通过socket可以用如枝兆下方式进行。

1.启动服猛旦租务端代码。

2.启动客户迟谨端自动连接服务端

3.服务端上传文件,保存文件和路径。

4.将路径发送给连接服务端的客户端。

java中用socket一次传多个文件,参考思路如下:

1、把线程放到Vector 线程池里面;笑脊

2 、每次从Vector里面拿到第一个空闲的,如果没有,就新建一个线程,并保存到线洞前程池, 线程状态为使用中;

3 、线程完毕后,通知管理类,管理类把线程标识为空闲;

可以封装为简单的方法,如下:

public MyThread getFreeThread(){

.. // 从池里面获取一个空闲线程

}

public void finished(MyThread o){

//碰颤渗 线程通知管理类,我已经完成了

}

虽然在JDK的java.net包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。HttpClient是ApacheJakartaCommon下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。以下是简单的post例子高镇颂:Stringurl="bbslogin2.php"PostMethodpostMethod=newPostMethod(url)//填入各个表单域的值NameValuePair[]data={newNameValuePair("id","youUserName"),newNameValuePair("passwd","yourPwd")}//将表单的值放入postMethod中postMethod.setRequestBody(data)//执行postMethodintstatusCode=httpClient.executeMethod(postMethod)//HttpClient对于要求接受后继服务的请求,象POST和PUT等戚郑不能自动处理旅余转发//301或者302if(statusCode==HttpStatus.SC_MOVED_PERMANENTLY||statusCode==HttpStatus.SC_MOVED_TEMPORARILY){//从头中取出转向的地址HeaderlocationHeader=postMethod.getResponseHeader("location")Stringlocation=nullif(locationHeader!=null){location=locationHeader.getValue()System.out.println("Thepagewasredirectedto:"+location)}else{System.err.println("Locationfieldvalueisnull.")}return}详情见:/developerworks/cn/opensource/os-httpclient/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12271424.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存