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

本文介绍了一种通过UDP协议从PHP向Java程序发送消息的方法。Java端利用ReciveThread类监听9000端口接收消息,而PHP端则通过SocketPush类向指定的IP地址列表发送消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:启用一个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);
    }
}

 

转载于:https://my.oschina.net/u/554046/blog/223476

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值