IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

五四陈透过PHP看JAVA系列:fsockopen

五四陈科学院 2010-03-10 09:06:43 累计浏览 2,422 次
本机暂存

本系列主要总结PHP与JAVA之间的一些异同,给从PHP学JAVA或者是从JAVA学PHP的同学一点启发,五四陈科学院出品。

第一部分,先看PHP的fsockopen

先来看PHP手册中的定义http://www.54chen.com/p/function.fsockopen.html

看完定义后,来看一段代码,利用PHP去更新squid的缓存:

<?php
function updateCache($myUrl) {
global $vSquidConfig;
foreach ( $vSquidConfig ['host'] as $mySquid ) {
$myHandle = @fsockopen ( “127.0.0.1″, 80, $myErrNo, $myErrStr, 30 );
if ($myHandle) {
$myResult = ”;
@fputs ( $myHandle, “PURGE ” . $myFileName . ” HTTP/1.0\r\n” );
@fputs ( $myHandle, “Accept: */*\r\n” );
@fputs ( $myHandle, “\r\n\r\n” );
while ( ! feof ( $myHandle ) ) {
$myResult .= fgets ( $myHandle, 128 );
}
@fclose ( $myHandle );
}
}
}
?>

第二部分,再看JAVA如何达到这个目的

public void flushSquid() {
try {
int port = 80;
Socket socket = new Socket(”127.0.0.1″, port);
String path = http://test.com/test.html”;
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), “UTF-8″));
wr.write(”PURGE ” + path + ” HTTP/1.0\r\n”);
wr.write(”Accept: */*\r\n”);
wr.write(”\r\n\r\n”);

wr.flush();

// Get response
BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
// Process line…
System.out.println(line);
}
wr.close();
rd.close();
} catch (Exception e) {
}
}

亲爱的读者,您喜欢用PHP还是JAVA?

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. SmartSprites - 命令行形式的CSS Sprites生成器 (累计阅读 123,895)
  2. 使用gettext来支持PHP的多语言 (累计阅读 39,270)
  3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
  4. Java开发岗位面试题归类汇总 (累计阅读 22,157)
  5. android 开发入门 (累计阅读 19,529)
  6. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,408)
  7. libcurl的使用总结(二) (累计阅读 15,083)
  8. 我的PHP,Python和Ruby之路 (累计阅读 13,149)
  9. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,790)
  10. HashMap解决hash冲突的方法 (累计阅读 12,654)