- 浏览: 1592277 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
TCP一次传输
TCP的传输的客户端和服务端的互访
TCP服务端转换客户端文本
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; /** * TCP传输 * Socket 和ServerSocket * 建立客户端和服务器端 * 建立连接后,通过Socket中的IO流进行数据的传递 * 关闭Socket * 同样,客户端与服务器端是两个独立的应用程序. * * 客户端: * 通过查阅socke对象,发现在该对象建立的时候,就可以去连接指定的主机. * 因为tcp是面向连接的,所以在建立socket的服务时,就要有服务端存在,并连接成功.形成通路后,在该通道进行数据的传输. * * 步骤 * 1.创建Socket服务,并指定要连接的主机和端口,必须要启动服务器端监听 * 2.然后创建 客户端,然后开始交流 * * 需求:给服务端发送一个文本数据 * */ class TcpClient{ public static void main(String[] args) throws IOException{ Socket s=new Socket("192.168.1.121",10000); OutputStream out=s.getOutputStream(); out.write("tcp 哥们来了".getBytes()); s.close(); } } /** * 需求:定义端点接受数据并打印在控制台上 * 服务端: * 1.建立服务器端的socket服务, ServerSocket() * 并监听一个端口. * 2. 获取连接过来的客户端对象. * 通过ServerScoket的accept方法,所以这个方法是阻塞式的 * 3.客户端如果发来数据,那么服务端要使用对应的客户对象,并获取到该客户端对象的读取流读取发过来的数据 * 并打印在控制台. * 4.关闭服务器 (可选) * * */ class TcpServer{ public static void main(String[] args) throws IOException{ //建立服务端socket服务,并监听一个端口 ServerSocket ss=new ServerSocket(10000); Socket s=ss.accept(); String ip=s.getInetAddress().getHostAddress(); System.out.println(ip+"....connected"); //获取客户端发送过来的额数据,那么要使用客户端对象的读取流来读取数据 InputStream in=s.getInputStream(); byte[] buf=new byte[1024]; int len=in.read(buf); System.out.println(new String(buf,0,len));//关闭客户端 s.close(); ss.close(); } }
TCP的传输的客户端和服务端的互访
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; /** * 演示 tcp的传输的客户端和服务端的互访 * * 需求:客户端给服务端发送数据,服务端接手后,给客户端反馈系信息 * * 客户端: * 1.建立Socket服务,指定要连接主机和端口 * 2.获取socket流中的输出流,将数据写到该流中,通过网络发送给服务端 * 3.获取socket流中的输入流,将服务端反馈的数据获取到,并打印 * 4.关闭资源 */ class TcpClient2{ public static void main(String[] args) throws IOException{ Socket s=new Socket("192.168.1.121",10000); OutputStream out=s.getOutputStream(); out.write("服务端,你好吗?".getBytes()); InputStream in=s.getInputStream(); byte[] buf=new byte[1024]; int len=in.read(buf); System.out.println(new String(buf,0,len)); s.close(); } } class TcpServer2{ public static void main(String[] args) throws IOException{ ServerSocket ss=new ServerSocket(10000); Socket s=ss.accept(); String ip=s.getInetAddress().getHostAddress(); System.out.println(ip+".....connected"); InputStream in=s.getInputStream(); byte[] buf=new byte[1024]; int len=in.read(buf); System.out.println(new String(buf,0,len)); OutputStream out=s.getOutputStream(); out.write("我很好,thankyou!".getBytes()); s.close(); ss.close(); } }
TCP服务端转换客户端文本
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * * 需求:建立一个文本转换服务器 * 客户端给服务端发送一个,服务端会将文本转成大写再返回给客户端. * 而且客户端可以不端的进行文本转换.当客户端输入over时,转换结束. * * * 分析 * 客户端: * 既然是操作设备上的数据,就可以使用io技术,并按照io的操作规律来思考 * 源:键盘录入 * 目的:网络设备,网络输出流. * 可以操作的是文本数据,可以选择字符流 * * 步骤: * 1.建立服务 * 2.获取键盘录入 * 3.将数据发送给服务端 * 4.获取服务端的的反馈数据 * 5.结束,关资源 * 都是文本数据,可以使用字符流进行操作,同时提高效率,加入缓冲. * * * 该例子出现的问题: * 现象:客户端和服务端都在莫名的等待. * 为什么呢? * 因为客户端和服务端都有阻塞式方式,这些方法么有读取到结束标记, * 那么就一直等.而导致两端都在等待. * */ class TransClient{ public static void main(String[] args) throws IOException{ Socket s=new Socket("192.168.1.121",10000); BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in)); //BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); //优化 PrintWriter out=new PrintWriter(s.getOutputStream(),true); BufferedReader bufrs=new BufferedReader(new InputStreamReader(s.getInputStream())); String line=null; while((line=bufr.readLine())!=null){ if("over".equals(line)) break; out.println(line); /* bufw.write(line); bufw.newLine(); //缓冲区的 读取结束标记 bufw.flush();*/ String str=bufrs.readLine(); System.out.println("Server:"+str); } bufr.close(); s.close(); } } class TransServer{ public static void main(String[] args) throws IOException{ ServerSocket ss=new ServerSocket(10000); Socket s=ss.accept(); String ip=s.getInetAddress().getHostAddress(); System.out.println(ip+"....connected"); //读取socket流中的数据 BufferedReader bufr=new BufferedReader(new InputStreamReader(s.getInputStream())); //目的Socket输入流,将大写的写入到socket输出流,并发给客户端 //BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); //优化 PrintWriter out=new PrintWriter(s.getOutputStream(),true); String line=null; while((line=bufr.readLine())!=null){ System.out.println(line); out.println(line.toUpperCase()); /* bufw.write(line.toUpperCase()); bufw.newLine(); //缓冲区的 读取结束标记 bufw.flush();*/ } s.close(); ss.close(); } }
发表评论
-
检测一个字符串是否在jvm的常量池中
2018-12-18 17:34 1007public static boolean inPool( ... -
UTC时间, GMT时间 ,夏令时
2017-08-18 15:12 2285经常混淆于此,特地研究了一下,记录在此以备忘。 整个地 ... -
java 反射List
2017-02-18 01:58 5663package com.enhance.reflect; ... -
JDK1.5 Exchange 两个线程互换数据
2016-08-04 18:00 1006import java.util.concurrent ... -
JDK1.5 CountDownLatch
2016-08-04 16:25 1057/* * 还有一个利用场景: ... -
java CyclicBarrier 循环障碍阻塞
2016-08-03 23:54 1014//一个同步辅助类,它允许一组线程互相等待,直到到达某个公 ... -
java 信号灯 Semaphore
2016-08-03 23:53 1828更多介绍http://blog.csdn.net/java20 ... -
java 使用读写锁设计一个缓存模型
2016-08-03 23:49 1420import java.util.HashMap; ... -
java 读写锁
2016-08-03 23:46 820import java.util.Random; i ... -
java 多个线程之间同步通信
2016-08-02 17:16 2401import java.util.concurrent ... -
jdk1.5 锁 Lock 和 Condition
2016-08-02 17:03 927// lock 练习 public class Lock ... -
JDK1.5 获取线程执行结果 Callable Future
2016-08-02 15:08 1176import java.util.Random; i ... -
JDK1.5 线程池
2016-08-02 14:48 806import java.util.concurrent ... -
java 多线程ThreadLocal
2016-08-02 00:13 1150import java.util.Random; ... -
java 定时器 Timer
2016-08-01 16:53 3897import java.util.Calendar; ... -
java 多线程同步+通信
2016-08-01 16:48 970/** *父子线程 交替打印10 次, 100次 ... -
java 线程同步
2016-08-01 16:43 1027import java.util.concurrent.l ... -
java多线程练习
2016-08-01 16:35 1843Java 传统多线程 Java 多线程同步 Java 多线 ... -
java 传统多线程
2016-08-01 16:34 1011/** * 传统多线程 */ public ... -
java 图片,剪切,缩放
2016-01-06 10:21 2234package out; import ja ...
相关推荐
在Java八股文中,你可以找到关于语言特性、数据结构、算法、设计模式、多线程、网络编程、数据库操作以及框架应用等多个方面的内容。这份资料对于提升面试技能,尤其是应对大型互联网公司的面试(大厂原题)非常有...
通过使用T/TCP,可以显著减少在网络上传输的数据包数量,从而提高网络性能。本节还讨论了为了利用T/TCP而需要对客户端和服务器端的源代码进行的最小改动。 此外,章节还介绍了用于运行示例程序的测试网络,并比较了...
18. **网络编程**:初步接触Socket编程,理解TCP和UDP协议,以及客户端和服务器端的通信。 19. **JNI与Java本地接口**:了解如何使用JNI来调用C/C++代码,实现Java与其他语言的交互。 20. **JVM内存管理**:理解...
**第22-23天:Java Swing与GUI** 这部分会介绍Java的图形用户界面库Swing,如何创建窗口、按钮、文本框等组件,以及事件监听器的使用。 **第24-26天:Java网络编程** 学习者会接触Socket编程,理解TCP和UDP协议,...
这期间,学员将通过每一天的学习和编码实践,掌握从第16天到第25天的Java高级特性,如并发编程、集合框架的深入使用、IO流、网络编程、异常处理、设计模式等关键知识点。 【标签】"java-毕向东" 显示了课程的专业...
8. **网络编程**:基础的Socket编程,包括TCP和UDP通信,以及ServerSocket和Socket类的使用。 9. **JVM内存模型**:解析Java虚拟机的工作原理,包括堆内存、栈内存、方法区、本地方法栈的结构和作用,以及垃圾回收...
【描述】"前几天在网上搜的各大公司的面试题在汇总,拿出来和大家分享一下"表明这些资料是从网络上搜集的,包含了不同公司面试过程中出现的Java题目。这可能包括了一些知名科技企业的面试题目,对求职者来说是一份...
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置...
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java...
Java面试中,面试官通常会关注候选人的基础知识、编程实践、设计模式以及系统架构的理解。以下是一些常见的Java面试问题及其解答: 1. **Java基本数据类型**:Java有8种基本数据类型,包括整型(byte, short, int, ...
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7...
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发...
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java...
在计算机二级等级考试中,考生需要掌握各种IT基础知识,包括数据库操作、软件工程、网络通信、HTML标记、Java编程、.NET框架、算法分析以及操作系统等方面的知识。以下是根据题目内容提炼出的相关知识点: 1. ...
12. **多线程**:Java支持多线程编程,可以提高程序的并发性和响应能力。 13. **文件加密技术**:包括对称加密和非对称加密等多种技术,用于保护文件的安全。 14. **软件开发生命周期**:从需求分析、设计、编码、...
Java编程中事件处理模式 - **事件监听器**:注册监听器来监听特定事件。 - **事件适配器**:简化监听器的实现。 #### 21. Applet的安全权限 - **Applet**:嵌入网页中的小程序,运行在沙箱环境中,权限受到限制...
- **Socket编程**:Java提供了Socket和ServerSocket类进行TCP/IP通信。 - **HTTP客户端**:通过HttpURLConnection或者HttpClient类可以实现HTTP请求。 8. **反射机制** - **反射API**:允许在运行时动态地获取类...