就爱编程论坛

标题: php用socket上传图片 [打印本页]

作者: admin    时间: 2012-3-28 00:34:03     标题: php用socket上传图片

[code=PHP]服务器端: 

 <?php
  set_time_limit(10);
  //* 设置不显示任何错误 */
  //error_reporting(0);
  function varinfo($str) {
  echo "<pre>";
  var_dump($str);
  echo "<pre>";
  }
  $commonProtocol = getprotobyname("tcp");
  $socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);
  if ($socket) {
  $result = socket_bind($socket, '192.168.3.57', 1337);
  if ($result) {
  $result = socket_listen($socket, 5);
  if ($result) {
  echo "监听成功";
  }
  }
  }else{
  echo "监听失败";
  }
  //$path = "/home/upload/";
  $path = "e://web//";
  while (true)
  {
  $connection = socket_accept($socket);
  if($connection)
  {
  $msg = "telnet succeed!\r\n";
  socket_write($connection, $msg, strlen($msg));
  $BufferPond = array();
  $buffer = '';
  while($flag = socket_recv($connection, $buffer, 1024, 0))
  {
  if (false !== strpos($buffer,'filename:'))
  {
  $filename = substr($buffer,9);
  $filename = $path.$filename;
  $fp = fopen($filename,"wb");
  continue;
  }
  fwrite($fp,$buffer);
  }
  fclose($fp);
  socket_close($connection);
  }
  }
  socket_close($socket);
  ?>
[/code]

  客户端:
  
[code=PHP]<?php
  $errno='001';
  $errstr="socket file error";
  $fp = fsockopen("192.168.3.57", 1337, $errno, $errstr, 10);
  if (!$fp) {
  echo "$errstr ($errno)<br />\n";
  } else {
  $str = "filename:socket_file.bmp";
  fwrite($fp, $str); $out = file_get_contents('../../iphone3G.bmp');
  if($out){
  fwrite($fp, $out);
  fwrite($fp,'over');
  echo "上传成功";
  }
  }
  fclose($fp);
  ?>
[/code]


该贴已经同步到 admin的微博




欢迎光临 就爱编程论坛 (http://bbs.waibc.com/) Powered by Discuz! X2