- 浏览: 444578 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
无名草:
讲得真不错
一致性哈希算法 -
haoran_10:
gegewuqin9 写道不知道是不是这个意思01111111 ...
计算机字符编码从0/1到UTF-8 -
gegewuqin9:
不知道是不是这个意思01111111表示一个字节的utf-8字 ...
计算机字符编码从0/1到UTF-8 -
somefuture:
好棒,再多一些介绍就好了
计算机字符编码从0/1到UTF-8 -
haoran_10:
yybing110 写道这种算法 适用于什么情况呢? 归并过程 ...
排序算法(4)--归并排序
服务器端运用线程缓冲池:
package netTest; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Server { private int port = 5201;// 端口号 private ServerSocket serverSocket;// 服务器端 private ExecutorService executorService;// 缓冲池 private final int pool_size = 4;// 单个CPU缓冲池数目 public Server() { try { serverSocket = new ServerSocket(port); executorService = Executors.newFixedThreadPool(Runtime.getRuntime() .availableProcessors() * pool_size); System.out.println("服务器启动"); } catch (IOException e) { e.printStackTrace(); } } public void service() { while (true) { Socket socket = null; try { socket = serverSocket.accept(); Handler han = new Handler(socket); executorService.execute(han);//开启一个线程 } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { new Server().service(); } }
package netTest;
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; public class Handler implements Runnable { private Socket socket; public Handler(Socket socket) { this.socket = socket; } private PrintWriter getWriter(Socket socket) { OutputStream out; PrintWriter writer = null; try { out = socket.getOutputStream(); writer = new PrintWriter(out); return writer; } catch (IOException e) { e.printStackTrace(); } return writer; } private BufferedReader getReader(Socket socket) { InputStream in; BufferedReader reader = null; try { in = socket.getInputStream(); reader = new BufferedReader(new InputStreamReader(in)); return reader; } catch (IOException e) { e.printStackTrace(); } return null; } private String echo(String msg) { return "echo:" + msg; } @Override public void run() { System.out.println("new connection accepted " + socket.getInetAddress() + ":" + socket.getPort()); BufferedReader reader = getReader(socket); PrintWriter writer = getWriter(socket); String msg = null; try { while((msg=reader.readLine())!=null){ System.out.println(msg); writer.print(echo(msg)); if(msg.equals("bye")){ break; } } } catch (IOException e) { e.printStackTrace(); }finally{ if(socket!=null){ try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
package netTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
private Socket socket;
public Client(String host, int port) {
try {
socket = new Socket(host, port);
System.out.println("连接成功");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private PrintWriter getWriter(Socket socket) {
OutputStream out;
PrintWriter writer = null;
try {
out = socket.getOutputStream();
writer = new PrintWriter(out);
return writer;
} catch (IOException e) {
e.printStackTrace();
}
return writer;
}
private BufferedReader getReader(Socket socket) {
InputStream in;
BufferedReader reader = null;
try {
in = socket.getInputStream();
reader = new BufferedReader(new InputStreamReader(in));
return reader;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public void talk() throws IOException {
BufferedReader reader = getReader(socket);
PrintWriter writer = getWriter(socket);
System.out.println("new connection have accepted "
+ socket.getInetAddress() + ":" + socket.getPort());
BufferedReader localReader = new BufferedReader(new InputStreamReader(
System.in));
String msg = "";
while ((msg = localReader.readLine()) != null) {
writer.print(msg);
System.out.println(reader.readLine());
}
socket.close();
}
public static void main(String[] args) throws IOException{
new Client("localhost",5201).talk();
}
}
发表评论
-
java I/O 模型简述
2016-07-14 16:42 2174概述 从同步与异步&阻塞与非阻塞的概念,到具体的I ... -
使用AtomicBoolean优雅初始化资源
2016-06-27 11:55 3526在很多场景中,都需要用到加载资源等初始化操作,而且只需要初 ... -
Java序列化与反序列化
2015-09-08 18:50 2598什么是Java序列化与反序列化? 为什么需要Java ... -
设计模式概括
2014-04-01 15:05 797http://zz563143188.iteye.com/ ... -
junit 注解说明
2014-03-11 09:12 1052JUnit4使用Java5中的注解(annotation),以 ... -
Comparable
2013-09-11 00:37 798一个比较器,为了做排序对象所用,一个通用的例子 ... -
Serializable
2013-09-11 00:28 390Serializable 序列化 java对象需要传输或 ... -
java 对象存储
2013-07-28 11:16 171Object obj = new Object(); // ... -
数据库连接池C3P0学习
2012-12-24 18:03 58136数据库连接池C3P0框架是个非常优异的开源jar,高性能的管 ... -
spring aop 注解入门
2012-11-14 16:46 4586继上篇spring IOC,又学习了,spring AOP, ... -
spring ioc注解入门
2012-11-08 17:38 4499spring框架现在用的是如火如荼 管理bean的功能想必 ... -
javaMail入门
2012-10-23 11:23 4363利用java发送邮件,其实很方便。 1.首先下载jar包, ... -
log4j
2012-07-01 15:27 1288一、简介 Log4j是 ... -
JAVA代码规范
2012-06-15 21:28 15781、对于常用工具类的方法,需要关注同步问题 2、对于不能 ... -
java代理
2012-05-28 11:33 4000代理模式在Spring中,运用的淋漓精致,面向切面的编程,变 ... -
java注解
2012-05-27 15:31 1246注解,是未来技术的先驱者,会带来一股风暴的,很多框 ... -
java Bean的反射
2012-05-26 11:28 1489直接上代码。 package com.test.be ... -
java数组的反射
2012-05-25 21:48 1242java数组的反射,有一个JAVA API类可以运用:jav ... -
java hashMap
2012-05-10 16:41 3972java集合框架中,主要分为Collection、Map ... -
java 反射知识总结
2012-05-10 16:19 5694反射知识: 1.Class类: 获 ...
相关推荐
### 使用Socket编程实现电子邮件发送的关键知识点 ...总之,通过Socket编程实现电子邮件发送是一个涉及网络通信、数据处理、安全协议等多个方面的复杂任务,需要综合运用多种技术手段和编程技巧来完成。
通过以上技术的综合运用,我们可以构建出一个高效、稳定的大容量Socket并发服务。对于大型在线游戏、实时通讯应用或大数据传输服务来说,这样的解决方案至关重要。学习并掌握这些知识,不仅有助于提升项目的性能,也...
总结来说,Java Socket多线程文件传输实例项目是一个综合性的实践,涵盖了网络编程、多线程并发控制以及文件I/O等多个核心Java技术。通过这个项目,开发者可以深入理解如何在实际场景中运用这些技术,解决并发文件...
一、搭建服务器端 a)、创建ServerSocket对象绑定监听端口。...d)、关闭响应资源这个项目非常适合学完Java基础来练手,该项目就是对Socket网络编程、IO流、线程及线程池等知识进行一些实战综合运用。
4. **多线程**:Java的并发编程是面试中的一大难点,涉及线程的创建、同步机制(synchronized、volatile、Lock接口、ReentrantLock等)、线程池(ExecutorService、ThreadPoolExecutor、FutureTask等)、并发容器...
在Android平台上开发一款局域网聊天程序,主要...综上所述,开发一个Android局域网聊天程序需要综合运用Android应用开发、网络编程和Socket通信技术。理解并掌握这些知识点,才能构建出稳定、高效、安全的聊天应用。
总的来说,Java Swing聊天室项目是一个综合运用了Java GUI编程和网络编程技术的实例,通过它,开发者可以深入理解Swing组件的使用以及Socket通信的基本流程,为日后开发更复杂的网络应用打下坚实基础。
总的来说,这份"Android扑克网络游戏源码"是一个涵盖Android客户端开发、Socket网络通信、后端服务器编程以及多线程、数据库操作等多个IT领域的综合案例。无论是初学者还是经验丰富的开发者,都能从中获益,加深对...
通过以上分析,我们可以看到,在C/S架构下开发一个五子棋游戏需要综合运用网络编程、图形界面设计、游戏逻辑处理等多方面的知识。本课程设计不仅加深了学生对于C/S架构和Socket编程的理解,还锻炼了其实现复杂逻辑的...
通过孙卫琴的《Java网络编程详解》源代码,读者不仅可以学习到上述技术点,还能看到如何将它们综合运用到实际项目中,从而提升解决实际问题的能力。源代码的实践性使得理论知识更具可操作性,对初学者和有经验的...
总的来说,创建一个具备阅后即焚功能的即时通讯软件,需要综合运用Java的Socket网络编程、多线程、数据管理以及可能的安全加密技术。通过合理的架构设计和优化,可以实现稳定、高效且安全的即时通讯系统。
总的来说,Java编写的简易聊天系统是一个综合运用了网络编程、多线程、输入/输出流、用户界面设计等多个Java核心概念的项目。通过这个系统,开发者可以深入理解Java在网络应用中的实际运用,同时也能提升处理并发和...
4. **并发处理**:Java提供了丰富的并发API,如线程池、synchronized关键字、volatile、ThreadLocal等,理解它们的工作原理和使用场景,是高级Java开发者必备的知识。 5. **JVM内存模型**:面试时可能会涉及垃圾...
综上所述,"java编写的聊天室"是一个综合运用了Java GUI设计、网络编程、多线程、对象序列化等技术的项目,它展示了Java在构建实时通信应用方面的强大能力。通过这个项目,开发者可以深入理解Java网络编程的原理,并...
总的来说,Java飞鸽源代码是一个综合性的学习资源,涵盖了Java网络编程、多线程、数据序列化、事件驱动和文件传输等多个重要知识点。对这些内容的深入理解和实践,将有助于提升开发者在Java应用开发,特别是网络应用...
通过以上技术的综合运用,我们可以设计出一款能够满足高性能需求的Linux网络服务器。在实际应用中,这样的服务器能够处理大量用户连接,提供快速的服务响应,提升用户体验,同时降低了运维成本和复杂度。在对比测试...
Java聊天程序是一种基于Java编程语言实现的实时通讯应用,它允许用户通过网络进行文本、语音甚至视频的交流。...通过这些技术的综合运用,一个完整的Java聊天程序就能被开发出来,为用户提供稳定、安全的在线沟通平台。
总的来说,【JAVA语言写的聊天室】是一个综合运用Java网络编程、TCP协议、多线程和GUI设计等技术的实践项目。它不仅锻炼了开发者在网络通信方面的技能,还涵盖了Java语言的核心特性,对于学习和理解网络编程有着极大...
Java支持多线程,实验可能包含线程的创建(Thread类和Runnable接口)、线程同步(synchronized关键字、wait()、notify()方法)以及线程池的概念。学习者需掌握并发编程的基本原理和技巧。 **实验五:系统I/O程序...
- Socket编程基础,理解TCP和UDP的区别。 - HTTP协议的基础知识,如GET和POST请求。 9. **反射与注解** - 反射机制的理解,如何通过反射动态访问类、方法和属性。 - 注解的使用和自定义注解。 10. **设计模式*...