运行Java文件用get能获取到服务器上的数据,用安卓模拟器就获取不到

运行Java文件用get能获取到服务器上的数据,用安卓模拟器就获取不到,第1张

服务器端写个servlet,然后在doPost()方法里处理客户端上传文件,大概代码:

DiskFileItemFactory factory = new DiskFileItemFactory()

factory.setSizeThreshold(1024 * 1024)// 设置最多只允许在内存中存储的数据, 单位:字节

factory.setRepository(cachepath)// 设置一旦文件大小超过设定值时数据存放的目录

ServletFileUpload srvFileUpload = new ServletFileUpload(factory)

srvFileUpload.setSizeMax(1024 * 1024 * 1024)// 设置允许用户上传文件大小, 单位:字节

// 开始读取上传信息

List fileItems = null

try {

fileItems = srvFileUpload.parseRequest(request)

} catch (Exception e) {

System.out.println("获取上传信息。。。。。。失败")

}

// 依次处理每个上传的文件

Iterator iter = fileItems.iterator()

while (iter.hasNext()) {

FileItem item = (FileItem) iter.next()// 忽略其他不是文件域的所有表单信息

if (!item.isFormField()) {

// 取出文件域的所有表单信息

} else {

// 取出不是文件域的所有表单信息

}

}

网络通信可分为两种模式:TCP有连接的通信

UDP无连接的通信

依照上述的问题我可以理解为你是要进行有连接的通信。是要经过三次握手才能实现可靠的连接

第一次:建立连接时三次握手,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN(Synchronize Sequence Numbers)同步序列号。

服务器端即可使用:

Socket s=serverSocket.accept()

String clientIP=s.getInetAddress().toString()

这就实现了java服务器端获取到连接此服务器的客户端的IP了,你若想实现获取所有连接此服务器的客户端的IP,你可以把每次accept()返回的socket放进全局的Vector里面,然后在遍历这个vector方法就同上代码咯……


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/315986.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存