文档章节

网站留言消息Push到多台本地电脑提醒

大灰狼wow
 大灰狼wow
发布于 2014/04/17 16:01
字数 218
阅读 212
收藏 16

思路:启用一个java监听socket线程 采用的是udp而不是tcp。然后使用php socket根据ip推送过去。

 

java程序

class ReciveThread extends Thread {
 public void run() {
  while (true) {
   DatagramSocket ds = null;
   byte[] buf = new byte[1024];
   DatagramPacket dp = null;
   try {
    ds = new DatagramSocket(9000);// 打开端口
   } catch (SocketException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   dp = new DatagramPacket(buf, 1024);
   try {
    ds.receive(dp);
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   // 如果有消息 弹出框
   String str = new String(dp.getData(), 0, dp.getLength()) + "from"
     + dp.getAddress().getHostAddress() + ":port" + dp.getPort();
   ts(str);
   ds.close();
  }
 } 
}

php push到java监听

<?php
/**
 * 重点参考http://www.cnblogs.com/xiaowu/archive/2012/09/18/2690677.html
 * Enter description here ...
 * @author Administrator
 *
 */
class SocketPush
{
    public $ip = array(
            '10.1.1.106',
            '10.1.1.177',
            '10.1.1.200',
            '10.1.1.128');
    
    public $port = 9000;
    
    /*推送功能 采用UDP协议*/
    public function push($msg)
    {
        
        $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
        
        $len = strlen($msg);
        for ($i = 0; i < count($this->ip); $i ++) {
            @socket_sendto($sock, $msg, $len, 0, $this->ip[$i], $this->port);
        }
        socket_close($sock);
    }
}

 

© 著作权归作者所有

大灰狼wow
粉丝 48
博文 395
码字总数 48850
作品 1
嘉兴
程序员
私信 提问
KgCM 金刚客服系统--KgCM

KgCM,金刚C2C/B2B客服系统,一款类似淘宝IM的C2C商城/B2B商城聊天咨询工具,KgCM由网站咨询终端、桌面程序聊天终端(gui)、消息通讯服务器三大组件构成,针对卖家,买家,网店客服开发个性化的...

聚龙软件
2011/11/10
11K
2
用java开发的功能强大的远程控制软件--黑天鹅远控

用java开发的一款功能强大的开源的远程控制软件,可以实现生成服务器、屏幕监视,屏幕控制、上传文件、下载文件、 远程命令、远程任务管理器、发送警告、相互聊天、换皮肤、版本升级提醒 等功...

宋海康
2011/11/24
896
0
TurboMail邮件系统企业即时通讯移动客户端IM上线

近日,TurboMail邮件系统旗下TurboIM企业即时通讯移动客户端iPhone版、Android版已正式上线。 TurboIM企业即时通讯移动客户端将TurboIM企业即时通讯功能扩展到手机移动设备上,实现手机与PC之...

月亮湖泊
2014/01/21
408
0
git养成记之二

前几天经过大佬们的提醒,发现是强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容,所以说是一个比较可怕的命令,和一样可怕😨 但是如果你不强推,可能就出现了这样的错误 当要p...

Jimmy
2017/05/27
0
0
App 开发者,求求你们别 push 了!

iPhone手机中的推送通知服务 北京时间8月21日消息,国外媒体周一刊登评论文章称,对于各移动应用程序开发者而言,他们不应该滥用推送通知(push notification)功能,否则将引起用户的反感情绪...

oschina
2012/08/22
7.1K
42

没有更多内容

加载失败,请刷新页面

加载更多

Qt编写自定义控件55-手机通讯录

一、前言 前面几篇文章中的控件基本上难度系数接近0,甚至有凑控件数量的嫌疑,这次必须来一个强悍的控件,本控件难度系数在所有控件中排前五,代码量也不少,头文件都550行,实现文件1600行...

飞扬青云
33分钟前
26
0
C++与QML交互2:在QML中调用C++特性

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/xi_gua_gua/article/details/56991367 QML引擎(QQmlEngin...

shzwork
50分钟前
3
0
【Go专家编程】defer这里有个坑

前言 项目中,有时为了让程序更健壮,也即不panic,我们或许会使用recover()来接收异常并处理。 比如以下代码: func NoPanic() {if err := recover(); err != nil {fmt.Println("Recov...

恋恋美食
59分钟前
4
0
20190920笔记

扩展: bashrc和bash_profile http://ask.apelearn.com/question/7719 http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html echo 颜色 http://www.cnblogs.com/lr-ting/archi......

徐-锐
今天
3
0
Shiro整合Redis代码解读

1. shiro默认使用的MemoryConstrainedCacheManager创建MapCache来保存缓存数据。manager和cache对象之间的关系可以参考笔者的另一篇文章,Springboot Redis详解。 2. shiro整合Redis的关键就...

sunranhou
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部