socket如何读取上传文件数据

问题描述

我有用ServerSocketserver=newServerSocket(80);去监听80端口。接着我用Socketclient=server.accept();client.setKeepAlive(true);InputStreamin=client.getInputStream();byte[]buff=newbyte[1024*100];intlen=in.read(buff);

去读取客户端的请求信息。测试:我用get方式,post的application/x-www-form-urlencoded这两种方式都可以去获取到请求信息保存请求的参数。在我使用postenctype="multipart/form-data"的时候读取不到上传文件数据,这里需要对socket做什么特殊的处理吗?

解决方案

解决方案二:
socket是对普通的TCP协议封装。而你说的GET/POST等操作是HTTP协议的;如果你要在普通的socket上面实现对GET/POST等命令的支持,首先就是要实现对HTTP协议的解析。然后获取客户端的命令,HTTP头以及相应的BODY。如果你是为了实现上传,那么建议用HTTPServer;如果是为了学习,看一下协议吧。
解决方案三:
引用1楼skgary的回复:

socket是对普通的TCP协议封装。而你说的GET/POST等操作是HTTP协议的;如果你要在普通的socket上面实现对GET/POST等命令的支持,首先就是要实现对HTTP协议的解析。然后获取客户端的命令,HTTP头以及相应的BODY。如果你是为了实现上传,那么建议用HTTPServer;如果是为了学习,看一下协议吧。

HTTP协议也是建立在TCP上的,不管我是否去解析,在我去接收一个HTTP协议的时候,我读取所有接收到的数据,那么我就应该能够读取到附加的上传文件吧。下面是我分别get和post测试时候接收到的数据:get请求:post未添加附件上传:当我添加了附件上传文件的时候只能接收到其他的参数和附件都无法读取到。
解决方案四:
这还是你读取的问题吧。后面应该还是有4K数据的。

时间: 2024-09-28 01:59:11

socket如何读取上传文件数据的相关文章

Android通过HTTP协议实现上传文件数据_Android

本文实例为大家分享了Android通过HTTP协议实现上传文件数据的具体代码,供大家参考,具体内容如下 SocketHttpRequester.java package cn.itcast.utils; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.InputStream; import java.io.Inp

Android通过HTTP协议实现上传文件数据

本文实例为大家分享了Android通过HTTP协议实现上传文件数据的具体代码,供大家参考,具体内容如下 SocketHttpRequester.java package cn.itcast.utils; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.InputStream; import java.io.Inp

不经保存,直接读取上传文件的内容

代码很简单,就不罗唆了. C#: <%@ Page Language="C#" AutoEventWireup="true" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runa

关于JSP Commons FileUpload 组件上传文件的一些总结

js|上传 也许好东西就是需要慢慢地去发现和总结的. 以前我写的JSP系统都是采用Jsp SmartUpload 组件来解决的. 前几天客户投诉说,上传大文件的时候,浏览器无反应,甚至会崩溃.叫我帮忙解决一下并加上上传进度表示(这个暂且不表,有需要的可加我MSN:info@hkeb.com). 立即google ,baidu 一下,才知JSp SmartUpload 适用于比较小文件的时候,而如果上传大文件的时候还得数commons FileUpload 组件. 在网上翻阅了无数篇关于这个东东的

使用ajaxfileupload.js实现ajax上传文件php版_jquery

 无论是PHP,还是其他的服务端脚本都提供了文件上传功能,实现起来也比较简单.而利用JavaScript来配合,即可实现Ajax方式的文件上传.虽然jQuery本身没有提供这样的简化函数,但有不少插件可以实现.其中,Phpletter.com提供的ajaxfileupload.js是一个轻量的插件,而且编写方式与jQuery提供的全局方法$.post()非常相似,简单易用. 不过,该插件实在太简化了,除了可提供需上传文件的路径外,也就不能传递额外的值到后台服务端.所以,我修改了一下该脚本,增加个

javadbf 读取上传的dbf文件时,不能正确读取某些类型的数据

问题描述 javadbf 读取上传的dbf文件时,不能正确读取某些类型的数据 如题,读取Double.Integer.DateTime.Varchar类型的数据时出现乱码,而Character.Numeric.Date.Float能正确读取. 解决方案 byte[] b = new byte[fis1.available()]; fis1.read(b); cqPO.setDataSourceBlob(Hibernate.createBlob(b));// 只能通过字节读取 看了下b中的数据,对

jsp上传文件到mysql数据源代码

问题描述 最好可以使用的,另加注释 解决方案 利用apache-commons-fileupload写jsp上传文件<%@ page language="java" contentType="text/html;charset=gb2312"%> <%@ page import="java.util.*"%><%@ page import="java.io.*"%><%@ page i

求一个SOCKET上传文件的工具类

问题描述 求一个SOCKET上传文件的工具类有客户端和服务器端哪位高手能支持下 解决方案 解决方案二:这么简单的东西.服务端监听一个端口,接受这个端口的数据,写入文件即可.客户端建立相应端口的socket,往里面写数据即可.解决方案三:使用ftp类库吧,,,简单..

ftp上传时数据Socket错误连接超时的解决方法_应用技巧

ftp上传时数据Socket错误解决方法 一些网友在上传网站时,虽然可以连接但出现如下错误 -------------------------------------------- 200 Type set to ASCII. PASV 227 Entering Passive Mode (61,151,251,110,4,64). 数据 Socket 错误: 连接已失败 (连接已拒绝) --------------------------------------------  或是 -----