- 浏览: 739987 次
- 性别:
- 来自: 黑龙江
文章分类
- 全部博客 (476)
- web 前端处理 (57)
- 工具类 (33)
- jsp servlet (15)
- html5 (4)
- Hadoop学习笔记 (30)
- linux (25)
- java (45)
- ibatis (5)
- css (10)
- html table (1)
- struts2 (11)
- hibernate (10)
- spring (27)
- server2005 函数学习 (5)
- 一些工具软件记载 (18)
- 数据库 (17)
- cache (2)
- eclipse (7)
- 英文记录 (1)
- 技术扩展了解 (8)
- 加密 (1)
- 服务器 (6)
- 设计模式 (5)
- 管理与沟通 (3)
- Andorid开发 (54)
- javascript基础 (20)
- Extjs (15)
- 文档使用 (1)
- 线程 (11)
- ant与Log (4)
- 异常记载 (1)
- 架构 (6)
- 脚本 (1)
- SparkSQL (3)
- python (6)
最新评论
-
浮生一如梦:
[b][i][u][list]
[*][img][url][f ...
字节,字节数组输入输出流ByteArrayInputStream,ByteArrayOutputStream理解 -
java_frog:
httpclient4里才有default
DefaultHttpClient使用 -
lizhenlzlz:
lizhenlzlz 写道HttpHost proxy = n ...
DefaultHttpClient使用 -
lizhenlzlz:
HttpHost proxy = new HttpHost(& ...
DefaultHttpClient使用 -
kennykinte:
methodGet()方法里
HttpPost httpGet ...
DefaultHttpClient使用
所有东西 为自己理解,有的地方会不准,如果有高手可以指出,非常感谢。
这里对使用socket
//流读取工具类
public class StreamUtil {
//正常读取本地文件的时可以用,但用于网络传输读取数据时会有问题
//一旦 网络中另一方的数据没有返回到 这边 则会出现阻塞状态
public static byte[] readStream(InputStream is ) throws IOException{
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
// is.read( buffer,0,lenth )
while( is.read( buffer ) !=-1 ){
outStream.write(buffer );
}
is.close();
outStream.close();
return outStream.toByteArray();
}
//调用 availble 可用于网络上读取数据
public static byte[] readStreamAvailble(InputStream is ) throws IOException{
int len =0;
while(len==0){
//如果服务端 没有数据返回则 不断的取数据 ,直到取到数据位置 ,一旦出现阻塞则数据则会不准确
len = is.available();
}
byte[] bs = new byte[len];
is.read( bs );
return bs;
}
//测试
public static void main(String[] args) throws IOException {
File file = new File("e:/1113.txt");
InputStream is = new FileInputStream(file);;
byte[] str = readStream( is);
System.out.println( new String(str) );
}
}
-------socket 服务端 使用 网络读取数据
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(8001);
while(true ){
Socket socket = server.accept();
//对于每个客户端的请求 每个请求创建一个线程来回应
new Thread(new ServerImpl( socket )).start();
}
}
}
==========客户端
public class Client {
public static void main(String[] args) { client2(); } /** * 测试 过期时间 设置 * @Title: client2 * @Description: * @param * @return void * @throws */ public static void client2(){ Socket socket = null; try { socket = new Socket("127.0.0.1", 8001); socket.setKeepAlive(true); while(true && null != socket){
//服务器阻塞 Thread.sleep(10 * 1000); } } catch ( Exception e) { e.printStackTrace(); } } /** * 测试输入流 * @Title: client1 * @Description: * @param * @return void * @throws */ public static void client1(){ Socket socket = null; OutputStream os = null; InputStream is = null ; try { socket = new Socket("127.0.0.1", 8001); socket.setKeepAlive(true); socket.setSoTimeout( 30*1000 ); os = socket.getOutputStream(); os.write( "服务器你好:".getBytes()); is = socket.getInputStream(); byte[] bs = StreamUtil.readStreamAvailble(is); System.out.println( "服务器的消息:"+ new String(bs )); is.close(); os.close(); socket.close(); } catch ( Exception e) { e.printStackTrace(); }finally{ try { if(is!=null ){ is.close(); } if(os!=null){ os.close(); } if(socket!=null){ socket.close(); } } catch (IOException e) { e.printStackTrace(); } } }
}
参考:
http://cuisuqiang.iteye.com/blog/1434416
发表评论
-
字符编码表-字符串-字符-字节-字节数组理解
2018-11-19 14:37 726字符串是由一个一个的字符组成 每个字符按照编 ... -
Jstack查找线程运行问题
2017-04-18 15:51 8901 Jstack是JVM自带的可以查看线程运行情况的工具,线 ... -
Long与字节 的转换
2016-12-29 14:13 2808Long为8个字节,每个字节是8位,则其长度为64位 ... -
面试题解析记载
2016-12-24 18:16 413工具类源码 hashcode: 在创建类 ... -
JAVA 内存管理
2016-12-24 18:13 654垃圾回收机制:java内存包括堆、栈、元数据区 ... -
jvisualvm来JVM监控
2016-12-05 11:52 711附件文档。 -
hashCode与equals
2016-11-30 15:38 526hashcode方法返回该对象的哈希码值,通常用 ... -
Shell 执行java程序
2016-06-14 17:16 677#!/bin/bash java -Xms ... -
Java 枚举使用
2016-03-30 18:13 804/** * 枚举常量 * */ p ... -
JVM学习与调优
2016-02-23 17:28 9821 堆:存放数据 栈:存放逻辑 ... -
HttpClient使用二
2015-10-21 13:31 1026封装后返回Map、实体、List中含有实体, 等 ... -
CyclicBarrier使用
2015-08-31 17:10 564volatile关键字解析: http://mp. ... -
getGenericSuperclass与getGenericInterfaces
2015-04-28 11:30 1671个人理解:这两个 ... -
字节,字节数组输入输出流ByteArrayInputStream,ByteArrayOutputStream理解
2015-04-08 19:39 4742字节作为数据的一种表现形式可以与其他的数据表现 ... -
JAVA 文件的拆分与合并处理
2014-12-29 14:48 2420描述: 将一个pdf拆分为两个文件保存,然后在将文件合 ... -
反射与注解的使用
2014-12-05 16:46 7806作用:注解是附加在代码中的一些信息,用于编译、运行时解 ... -
IO 学习
2014-06-26 09:29 534附件是学习IO的一些总结,当然还不全面需要继续总结。 ... -
String str = new String("abc")内存分配问题
2014-06-22 16:30 939一、JAVA数据存 ... -
初识网络爬虫
2014-05-16 15:00 792初识网络爬虫 http://bl ... -
java 文件操作
2014-01-19 17:04 0public class FileUtil { ...
相关推荐
在这个示例中,我们将深入探讨如何利用Java IO流与Socket实现简单的文本传输。对于初学者来说,理解这两个概念及其交互是非常关键的。 首先,让我们来了解Java IO流。IO流在Java中用于读取和写入数据,它可以是文件...
在"Java Socket 视频流转发Socket"这个主题中,我们将深入探讨如何使用Java Socket来处理视频流的传输。 首先,让我们了解什么是ServerSocket。在Java中,`java.net.ServerSocket`类是服务器端使用的,它监听特定...
另一种是使用输入输出流,直接将文件流与Socket流对接,实现文件的透明传输。无论哪种方式,都需要处理好异常,确保文件完整传输且不会因网络波动导致数据丢失。 客户端(client)的代码通常包括以下步骤: 1. 创建...
- 文件流与Socket流的结合:可以将`FileStream`与`NetworkStream`关联,实现文件数据的发送和接收。 - 分块传输:大文件通常需要分块发送,以避免一次性加载到内存中。 7. **震动功能**: - 对于“震动弹出”...
在本项目“java socket 视频流转发socket.zip”中,我们很显然关注的是如何使用Java Socket进行视频流的转发操作。下面将详细介绍Java Socket在视频流转发中的应用及其相关知识点。 1. **Socket基础** - **Socket...
4. **文件流与Socket流**:在进行文件传输时,需要将文件流(FileStream)与Socket流(NetworkStream)相结合。首先读取文件内容到内存,然后通过Socket发送到网络,接收端再将接收到的数据写入到文件。 5. **异步...
在这个场景中,JavaCV被用来从Socket接收视频流,然后将其推送到流媒体服务器,特别是使用RTMP协议的服务器。下面将详细介绍这个过程涉及的关键知识点。 1. **JavaCV**: JavaCV(Java Computer Vision)是一个开源...
Socket 有两种类型:基于流的 Socket(Stream Socket)和基于数据报的 Socket(Datagram Socket)。 * 基于流的 Socket:使用 TCP 协议,提供可靠的、有序的、无损失的数据传输。例如,HTTP、FTP、TELNET 等协议都...
在IT行业中,视频推流是在线直播服务的关键技术,它涉及到服务器端与客户端的数据传输,主要依赖于Socket编程。这个“视频推流调试.rar”压缩包包含针对Java、PHP和C++三种不同编程语言的推流调试工具,适用于开发者...
本文将详细解析"android socket surface mediacodec h264"这个主题,涵盖如何通过Socket接收视频流数据,并利用Surface和MediaCodec进行解码与播放。 首先,Socket是网络通信的基础,它提供了进程间的数据传输通道...
在本文中,我们将深入探讨如何使用Qt和OpenCV来播放视频流,并通过Socket进行传输。首先,让我们了解这两个核心技术。 **OpenCV(开源计算机视觉库)** 是一个强大的跨平台库,专门用于图像处理和计算机视觉任务。...
Socket通信基于TCP/IP协议,确保数据的可靠传输,通过输入流和输出流进行数据交换。在实际应用中,Socket常用于实现分布式服务、聊天应用、文件传输等场景。 本书可能涵盖了以下主题: 1. NIO基础:介绍NIO的基本...
【描述】"C# 版socket 收发TCP协议有模版样例"表明这个资源包含了一个具体的实例,展示了如何在C#中使用Socket类进行TCP协议的数据发送与接收。在.NET框架中,Socket类是网络通信的基础,它提供了对TCP/IP和UDP/IP...
本文将深入探讨“包的测试”以及如何通过SOCKET在C语言环境中传递二进制流。 首先,TCP是一种面向连接的、可靠的传输层协议,它确保了数据在互联网上的正确、完整传输。TCP通过建立连接来保证数据的有序和无损传输...
网络流是专门用于网络通信的流,如`NetworkStream`类,它是与Socket关联的流,用于读写网络上的字节流。在TCP通信中,我们通常使用`NetworkStream`与Socket配合,实现数据的发送和接收。 3.2 内存流 内存流是对内存...
本教程将深入探讨如何使用Socket通信来连接安卓设备与个人计算机。Socket,也被称作套接字,是网络编程中的基本概念,它提供了进程间通过网络进行双向通信的能力。 首先,我们需要理解Socket的工作原理。Socket基于...
4. 获取输入流和输出流对象,通常使用Socket的getInputStream和getOutputStream方法。 5. 使用输入流读取服务器发送的数据,使用输出流写入要发送到服务器的数据。 6. 完成数据交换后,记得关闭Socket连接。 三、...
本主题将深入探讨如何利用C#的异步Socket实现发送文本、文件以及数据流的功能。 1. **异步Socket基础** 异步Socket编程模式基于.NET Framework中的`System.Net.Sockets.Socket`类,通过调用异步方法如`...
"Android+PC Socket通信"指的是通过TCP Socket协议实现Android设备(手机客户端)与个人计算机之间的数据传输。Socket通信允许应用程序之间建立端到端的连接,进行双向数据交换,非常适合用于实时通讯、文件传输等...
"基于Socket的Telnet服务设计与实现" 一、Telnet协议概述 Telnet协议是TCP协议族中的一员,是Internet远程登录服务的标准协议。远程登录是指用户使用Telnet命令,使自己的计算机成为远程主机的一个仿真终端的过程...