java上用socket访问http,遇到没有Content-Length的头部,read阻塞要很久

Java > Java相关 [问题点数:100分,结帖人cxwithyxy]
等级
本版专家分:21
勋章
Blank
GitHub 绑定GitHub第三方账户获取
结帖率 77.78%
等级
本版专家分:6873
勋章
Blank
红花 2014年10月 Java大版内专家分月排行榜第一
等级
本版专家分:2103
等级
本版专家分:21
勋章
Blank
GitHub 绑定GitHub第三方账户获取
cx2889

等级:

Blank
GitHub 绑定GitHub第三方账户获取
如果某个网页的HTTP响应消息头中没有包含Content-Length,该如何判断流已读完而不被阻塞

遇到响应头中没有Content-Length时,代码就跑不下去了。如果一直使用readLine()方法一直读下去,如何判断流已读取到最末尾并不发生阻塞?跪求大神指点。 ``` public static void main(String[] args)throws ...

抓TCP报文诊断 HTTP Content-Length 问题

欢迎访问陈同学博客原文 抓TCP报文诊断 HTTP Content-Length 问题 本文分享一个 HTTP Content-Length 有误时场的景,以 tcpdump 抓包来做真实演示,同时结合TCP状态进行分析。 关于 Content-Length 的场景,比如...

goahead content-length为0时的问题

UI将获取扫描无线列表的接口formWifiApScan,由get换成了POST,此时无法获取到数据,通过抓包分析,为webserver未正常及时返回数据,同时看到content-lengthy为0。 分析过程 今天晚上又与李权跟了一下这个问题,...

Java使用socket接收http请求,read方法阻塞的问题

服务端socket往往会使用socket.getInputStream.read()或socket.getInputStream.read(buffer)去读取客户端的请求内容,而且仅当read方法返回-1时,服务端socket才认定已经没有更多的东西可读了,这个在java doc可以...

Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)

问题的引出  在第一章《基本套接字》中,作者给出了一个TCP Socket通信的例子——反馈服务器,即服务器端直接把从客户端...import java.net.Socket; import java.net.SocketException; import java.io.IOException; i

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的...

JavaSocket上Read操作阻塞问题

Socket上读取对端发过来的数据一般有两种方法: 1)按照字节流读取 [java] view plain copy print? BufferedInputStream in = new BufferedInputStream(socket.getInputStream()); int r = -1;...

采用Java阻塞IO对已经到达的socket流实现非阻塞完整读取(一个简单的java http server实现)

最近写服务器时想到一个问题:用Java Bio(即Socket)写服务器,怎么一次性完整读取已经到达的Socket流。 对这个需求有多角度的设定,也有多解法。我们来一一具化这个需求: (1) 解法:依赖http协议的content-...

DataInputStream read不等于-1,socket文件传输只能传输一个文件无法传输多个,DataInputStream read阻塞

最近被一个朋友问答一个关于sokcet文件传输的问题,他发现他写的代码只能发送一次文件,没办法发送第二次,或者说发送第二次的时候服务端就接收不到了。 部分代码如下 // 开始接收文件 ... int length = 0;

java Socket阻塞问题

reader.read(chars)我调试的时候,发现,socket连接成功,并且在接收线程的地方设置断点的时候可以正常接收到消息,如果不设置断点就无法接收到消息,说明在什么地方被阻塞了。就找到是上面的原因。 二、代码实例 ...

Socket:关于read()和readLine()不返回-1导致跳不出循环

部分源码: fout = new FileOutputStream(file); din = new DataInputStream(socket.getInputStream()); byte[] bytes = new byte[1024];... while ((length = din.read(bytes, 0, bytes.le...

java TCP/IP Socket编程-----进阶--多线程-----笔记8

概述: 如何充分利用cpu多核资源,以前是开启多进程,现在更加轻量级的多线程来实现,实现多线程,常用就是Thread类和实现Runnable接口,通常采用后者,多线程...1.服务端的线程类 EchoProtocol.java package com.tc

Java TCP/IP Socket编程】----发送和接收数据----消息成帧与解析

在程序中使用套接字向其他程序提供信息或者使用其他程序提供的信息,这就需要任何需要交换信息的程序间在信息编码方式达成共识(包含了信息交换的形式和意义),称为协议,用来实现特定的应用程序的协议叫应用程序...

java TCP/IP Socket编程-----发送和接受数据---投票例子--笔记7

概述: 通过简单投票的例子学习一下,TCP/IP通讯需要注意的那些点,或者这个例子会其他知识,只要是知识就要慢慢捡,捡着捡着就...2.要用接口来实现解耦,方便后期扩展 2.开始代码 package com.tcp.ip.chapter3.vote;

Java阻塞 socket 通信

前几天我们公司C语言组的人需要一个基于socket的报文接收器来方便他们测试项目,我花了小半天给他们做了个多线程的socket服务端,我写好后在本机测试后交给了他们,但是他们那边能连服务器端,但是发送消息时没...

Java Socket发送与接收HTTP消息简单实现

在上次Java Socket现实简单的HTTP服务我们实现了简单的HTTP服务,它可以用来模拟HTTP服务,它可以截获HTTP请求的原始码流,让我们清楚的了解到我们向服务发的HTTP消息的结构,对HTTP请求消息有个清晰的认识。...

JavaSocket通信的read阻塞和乱码问题

这两天一直再研究TCP通信这一块,因为自己再做一个后台系统,写出的日志想传送的服务端(Server),大神都推荐我netty去写,但是我发现并没有必要(我懒得看),一开是读取数据的时候是这样写的: in = socket....

JAVA使用Socket实现的简易HTTP服务器

阻塞IO的方式解析浏览器请求,封装为请求报文类 import java.io.IOException; import java.io.InputStream; import java.util.ArrayList;//由请求产生的Socket读取请求报文并解析成为Request public class Request ...

javasocket通讯,使用readLine接收还是使用read接收

Socket s = new Socket("192.168.218.2", 58100); BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); String info = null; while(!((info=br.readLine())==null)){

JAVA Socket编程学习10--解决TCP粘包分包问题

 根据我的第六篇文章http://blog.csdn.net/m0_37739193/article/details/78484577编写了NIO的Socket服务端代码后,接受UDP的数据正常,但是接收的TCP数据却出现了粘包分包/拆包/半包问题,查阅网上资料知道已经有...

java网络编程实例1——用socket类写http客户端

【问题描述】 写一个

Java 网络编程 之 socket 的用法与实现

一、概念TCPTCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户...

Java Socket实现文件传输

A:1核2GB1M服务器年86元 B:1核2GB1M服务器三年229元 C:2核4GB3M服务器三年799元(强烈推荐) D:2核8GB5M服务器三年1399元 ...最近学Socket学上瘾了,就写了一个简单的文件传输程序。 客户端设计思路:客户...

C语言 使用socket发送http请求接收任意大小响应内容

最近想使用JNI完成http请求,由于之前有C语言基础,就来了兴致研究了一番。 请务必理解http的传输层数据格式,\r\n和\r\n\r\n,例: #define HTTP_POST "POST /%s HTTP/1.1\r\nHOST: %s:%d\r\nAccept: */*\r\n"\ ...

Java面试题全集(

2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试...

JAVA Socket编程中关于Read()方法阻塞的问题 (如何跳出循环)

最近由于在学计算机网络,于是用JAVA写个聊天室系统。 我试图给服务器发送图片,关键代码(部分)如下: 服务器端接受,关键代码(部分)如下: //保存文件 System.out.println("保存文件"); File file = new...

java socket 长连接 nputStream的read 阻塞问题情况之一

1、建立socket长连接以后,进行数据读取,代码如下  Socket socket = socketmap.get(handler);  try {  BufferedInputStream br = new BufferedInputStream(socket.getInputStream());  

Java,InputStream,Socket阻塞.(关于HTTP请求的IO问题自我总结)

前言: 由于项目的需求,需要实现以下流程: 1. Client发送HTTP请求到Server. 2. Server接收HTTP请求并显示出请求的内容(包含请求...import java.net.Socket; import java.net.ServerSocket; import java.net.InetAd

Premiere2019破解版

文档内包含pr2019版本的破解版,只需在解压后点击Setup.exe即可一键安装。

亚太数学建模(APMCM)历年赛题与优秀论文14-18年.zip

亚太数学建模(APMCM)历年优秀论文

相关热词 c#网页调用exe程序 c# 获取变量的指针 c#调接口传参 c# 异常处理 类 c#编译生成dll选什么 c# 内存泄漏检测 c#中抽象类和接口的区别 c# 协变 逆变 c#读取da文件 c# 串口数据发送