- 浏览: 215434 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (143)
- java (13)
- mongodb (15)
- linux (31)
- mysql (2)
- cache (1)
- Android (3)
- lucene (2)
- javascript (9)
- php (13)
- 人生 (2)
- solr (7)
- 跨域iframe (1)
- 统计学 (1)
- redis (0)
- amazon aws (2)
- 国内比较便宜的vps (1)
- nginx (5)
- sns api应用 (1)
- api (1)
- postfix (1)
- nodejs (1)
- gitlab (1)
- myeclipse (1)
- matlab (3)
- ubuntu (2)
- stardict (1)
- cdn (1)
- lajp (1)
- workerman (1)
- tensorflow (1)
- 协同推荐算法 (3)
- html5 (1)
- extensions (3)
- Rome (1)
- 正则 (1)
- EBS (1)
- python (5)
- https (1)
- iptables (1)
- facebook (0)
- ImageMagick (0)
- elasticsearch (1)
- Flask (1)
- wordpress (0)
- kubernetes (0)
最新评论
-
三尺寒冰:
怎么实现排序的?分析一下
php mongodb 实现group 并按照某字段排序
package duisong;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Timer;
/**
* @author Administrator
*
*/
public class Server {
private int PORT = 9000;
private ServerSocket ss = null;
private Timer timer = new Timer();
public Server() {
try {
ss = new ServerSocket(PORT);
System.out.println("server start");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
Server server = new Server();
server.startup();
}
public void startup() {
Socket s = null;
while (true) {
try {
s = ss.accept();
Handler handler = new Handler(s);
timer.schedule(handler, 1000, 3000);
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
}
}
-----------------------
package duisong;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Date;
import java.util.TimerTask;
/**
* @author Administrator
*
*/
public class Handler extends TimerTask {
private Socket socket;
public Handler(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
String nowTime = (new Date()).toLocaleString();
try {
if (socket != null && socket.isConnected()) {
// 这里打个擦边球,先发送个紧急的数据包,如果发送发送了异常,说明客户端已经关闭了socket连接了,进入异常处理程序
socket.sendUrgentData(0xFF);
System.out.println(nowTime);
PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket
.getOutputStream()));
pw.append(nowTime);
pw.append("\r");
pw.flush();
}
} catch (IOException e) {
try {
e.printStackTrace();
socket.close();
} catch (IOException e2) {
}
this.cancel();
}
}
}
------------------------
package duisong;
import java.applet.Applet;
import java.awt.Label;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
/**
* 此程序eclipse运行良好,但是在IE中引入该Applet就出错了,提示access denied
* 是由于客户端的安全策略引起的,看来还是要用flash比较靠谱
*
*/
public class SocketApplet extends Applet implements Runnable {
Label text = new Label();
private Socket socket;
private BufferedReader br;
public SocketApplet() {
}
public void init() {
text.setText("time begin");
add(text);
try {
socket = new Socket("127.0.0.1", 9000);
br = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
text.setText("socket setup ok ...");
// 初始化完毕,启动线程处理
new Thread(this).start();
} catch (Exception e) {
text.setText(e.getMessage());
}
}
public void run() {
while (true) {
try {
text.setText(br.readLine());
} catch (IOException e) {
}
}
}
}
1.server端监听9000端口,如果client端有加入
s = ss.accept();继续执行,进而执行逻辑,向client端口输出数据,
否则,stop here
2.client端可以设计线程池,有序列的向服务器端发送请求。
减少并发性操作服务器
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Timer;
/**
* @author Administrator
*
*/
public class Server {
private int PORT = 9000;
private ServerSocket ss = null;
private Timer timer = new Timer();
public Server() {
try {
ss = new ServerSocket(PORT);
System.out.println("server start");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
Server server = new Server();
server.startup();
}
public void startup() {
Socket s = null;
while (true) {
try {
s = ss.accept();
Handler handler = new Handler(s);
timer.schedule(handler, 1000, 3000);
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
}
}
-----------------------
package duisong;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Date;
import java.util.TimerTask;
/**
* @author Administrator
*
*/
public class Handler extends TimerTask {
private Socket socket;
public Handler(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
String nowTime = (new Date()).toLocaleString();
try {
if (socket != null && socket.isConnected()) {
// 这里打个擦边球,先发送个紧急的数据包,如果发送发送了异常,说明客户端已经关闭了socket连接了,进入异常处理程序
socket.sendUrgentData(0xFF);
System.out.println(nowTime);
PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket
.getOutputStream()));
pw.append(nowTime);
pw.append("\r");
pw.flush();
}
} catch (IOException e) {
try {
e.printStackTrace();
socket.close();
} catch (IOException e2) {
}
this.cancel();
}
}
}
------------------------
package duisong;
import java.applet.Applet;
import java.awt.Label;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
/**
* 此程序eclipse运行良好,但是在IE中引入该Applet就出错了,提示access denied
* 是由于客户端的安全策略引起的,看来还是要用flash比较靠谱
*
*/
public class SocketApplet extends Applet implements Runnable {
Label text = new Label();
private Socket socket;
private BufferedReader br;
public SocketApplet() {
}
public void init() {
text.setText("time begin");
add(text);
try {
socket = new Socket("127.0.0.1", 9000);
br = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
text.setText("socket setup ok ...");
// 初始化完毕,启动线程处理
new Thread(this).start();
} catch (Exception e) {
text.setText(e.getMessage());
}
}
public void run() {
while (true) {
try {
text.setText(br.readLine());
} catch (IOException e) {
}
}
}
}
1.server端监听9000端口,如果client端有加入
s = ss.accept();继续执行,进而执行逻辑,向client端口输出数据,
否则,stop here
2.client端可以设计线程池,有序列的向服务器端发送请求。
减少并发性操作服务器
发表评论
-
java httpclient4.X 无法判断文件大小问题
2016-05-05 13:22 834httpclient4.X 网页抓取代码: InputSt ... -
HttpClients4.*版本超时设置
2016-04-21 17:58 649http://www.open-open.com/lib/vi ... -
JAVA线程安全之synchronized关键字的正确用法
2016-04-10 13:20 621http://blog.csdn.net/yaerfeng/a ... -
lajp 实现php高效调用java
2015-12-16 17:34 2465http://blog.chinaunix.net/uid-2 ... -
java调用支付宝支付接口
2016-05-21 20:02 778支付宝接口: 申请支付宝接口服务: 1.https://f ... -
linux 下多个java jdk 切换
2015-07-19 12:19 11721.先将可用的 JDK 添加到alternatives中 al ... -
linux 下安装JAVA JDK
2014-02-21 16:46 871一、下载安装JDK1.6 1、下载jdk1.6的官方地址: ... -
java 构造json对象
2011-09-19 18:11 5517import java.util.ArrayList; imp ... -
I/O字符流
2011-08-31 09:28 8441.输出流 BufferedWriter fos = new ... -
sax解析文件
2011-08-30 14:12 892package sax; import java.util. ... -
java 解压缩文件
2011-08-30 14:06 1075/** * http远程请求,获取csv数据 * ht ... -
工作队列池,线程池
2011-08-30 14:00 1676import java.util.LinkedList; ...
相关推荐
消息推送:1.浏览器前台 到 socket 2.生产消息端 到 socket 再从socket 推送到前台 3.代码整理之后,可以和webpy框架合用 4.实现前台无刷新,后台多线程监听消息发送
由于工期不是很紧,需求不是很严格,所以放弃了使用三方的推送框架,基于Socket自己写了消息推送功能(服务端+android端)。服务器端使用java,客户端使用Android。本人是做Android开发的,所以demo重点介绍客户端的...
socket简单的推送文件的功能,从客户端传到服务器端。原理是文件输入流读本地文件到字节数组里,再通过输出流传到服务器。在服务器端用输入流读到字节数组,再通过文件输出流写到本地。
基于Web的数据推送技术,基于socket的推送方式,这个是真正的推送技术,服务器压力相对较小,但是要保持和客户端通讯的socket,以便需要的时候可以拿到这个socket给用户发送消息。
javaCV将socket获取的视频流推到流媒体(RTMP)服务器所需要的jar
客户端发送16进制给服务端,并行实现socket通道活动状态...netty作为服务器端如何主动的向传感器发送消息,我尝试当每个传感器连接到netty(TCP/IP)时使用一个map把该channelSocket的id和该channelSocket绑定在一起。
java_socket服务器给浏览器发信息.doc
基于web js socket,后端spring mvc实现实时推送技术,有兴趣的可以学一下
随着互联网技术的快速发展,基于B/S架构的实时通讯和消息推送的应用范围越来越广泛,服务器消息推送是很多应用中的一项重要功能,服务器推送技术的优劣直接影响着消息推送的效率。传统的解决方案有html refresh,...
C# 推送数据 SOCKET 例子完整实例源码;通过服务器发送信息控制客户端
java mina 服务端,socket客服端传信息,客服端上传消息
这个压缩包里面含有Android源码,以及网络调试助手,有tx下载后可以修改自己的ip和端口号,然后启动监听就可以进行双向数据的收发。{"message":"数据","type":0,"from":"来自哪里","to":"发送到哪里","userId":"001...
简单聊天功能,检测到报警信息,客户机推送到服务器
通过WebSocket实现服务器主动推送 图像数据通过Base64编码,定义为Json格式传输 前端收到Json数据后 将图像还原 代码有任何问题可以和我联系 liangji@csu.ac.cn 一起学习,此外也可以看我的博客 博客有更详细的介绍...
_Socket_服务端向指定的客户端发送消息_包含服务器
而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。 那么,什么是socket?Socket又称套接字,在程序内部提供了与外界通信的端口...
c# WinForm 使用Socket实现简单实现服务端与客户端连接,实现消息发送,服务器断开后,重启。客户端重连
主要介绍了Android中使用socket通信实现消息推送的方法,文中举了一个消息发送端和一个消息接收端以及服务器端的例子来说明原理并且展示了客户端的实现,需要的朋友可以参考下
关于服务器端向Android客户端的推送,主要有三种方式:轮询,应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。而且你还要考虑轮询的频率,如果...
使用此库可以直接在网页上创建 Socket TCP 连接,并与服务端连接,发送和接收数据。拥有完善的 Socket 接口,更方便操作...Socket具有持久、实时的优点,适合IM、聊天室、网络游戏、实时更新、实时推送等等的各个场合。