社区
Java SE
帖子详情
HTTP服务器的模拟程序:怎么判断客户机传送过来的数据已经完毕啊??
abcdhy
2004-08-15 12:50:19
哪位大侠写过HTTP服务器的模拟程序??
怎么判断客户机传送过来的数据已经完毕啊??
谢谢!!
用一个 while 循环读取, 如果没有数据 程序就会在 read() 函数处停止运行,必须要在 循环内部 判断已经读取完毕,及时跳出死循环 .
比如做一个最简单的服务器, 把 IE 发过来的所有信息回发给 IE ,我首先要接收了所有的信息,才能发送啊? 我怎么判断接收的信息的完整性啊,又什么时候停止接收啊?
...全文
209
5
打赏
收藏
HTTP服务器的模拟程序:怎么判断客户机传送过来的数据已经完毕啊??
哪位大侠写过HTTP服务器的模拟程序?? 怎么判断客户机传送过来的数据已经完毕啊?? 谢谢!! 用一个 while 循环读取, 如果没有数据 程序就会在 read() 函数处停止运行,必须要在 循环内部 判断已经读取完毕,及时跳出死循环 . 比如做一个最简单的服务器, 把 IE 发过来的所有信息回发给 IE ,我首先要接收了所有的信息,才能发送啊? 我怎么判断接收的信息的完整性啊,又什么时候停止接收啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
abcdhy
2004-08-16
打赏
举报
回复
呵呵,如果不知道编码,我在服务器怎么才能识别客户端发过来的信息呢??
各位有什么好的方法码??
gameboy999
2004-08-16
打赏
举报
回复
就只有判断CONTENT_LENGTH
dreamno
2004-08-16
打赏
举报
回复
效率不长
zhang21cnboy
2004-08-16
打赏
举报
回复
你不可能知道客户端用什么编码。因为http协议没有规定这个。至于读取数据死循环的问题,你给socket设置超时。就可以解决这个问题。
abcdhy
2004-08-16
打赏
举报
回复
先谢谢 ber() 的鼎力帮助!!
ber() 你说的这个方法,我也知道,但这其中有一个问题!
就是 IIS 也有这个BUG!
正常时 content_length:xxx 后是表示用户数据的长度,但如果客户端,故意修改了这个值(比如改得很大),再发给服务器,就会导致服务器没数据可读,一直阻塞在那里.
先不说这个问题了??还有一个重要的问题:
我接收到了用户输入的数据,我怎么知道客户端是使用的什么编码发送的呢??
是不是在某个位置有记录的??
谢谢!!
Java SE
62,629
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章