【发布时间】:2013-01-14 01:02:27
【问题描述】:
public class Client {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
Socket sock = new Socket();
sock.connect(new InetSocketAddress(InetAddress.getLocalHost(), 43594));
DataOutputStream out = new DataOutputStream(sock.getOutputStream());
DataInputStream in = new DataInputStream(sock.getInputStream());
out.writeByte(255);
out.writeLong(133713371337L);
System.out.println("Response: " + in.readByte() + ", " + in.readLong());
sock.close();
}
而 PHP 服务器意味着读取和写入 java 客户端:
<?php
require 'Stream.php';
$stream = new Stream();
$address = '127.0.0.1';
$port = 43594;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, 0, $port) or die('Could not bind to address');
socket_listen($sock);
echo "Server listening on port " . $port . "...";
$client = socket_accept($sock);
$data = socket_read($client, 1, PHP_BINARY_READ);
$byte_array = unpack('C*', $data);
$stream->setStream($byte_array);
$b2 = $stream->readUnsignedByte();
$l1 = socket_read($client, $stream->readQWord());
echo $b1 . " " . $l1;
socket_write($client, 0);
socket_write($client, $stream->writeQWord(2148000000));
正在使用的流类:http://pastebin.com/p1vc9aPG
我正在尝试用 java 编写一个客户端,用于与服务器联系、发送和读取数据。服务器用 PHP 编写并通过 cli 运行,而客户端用 java 编写。如果可以的话请帮忙,可能没有多少人可以帮助解决这个问题。
协议已经建立,我只是想在 PHP 中实现它。我似乎无法从 PHP 页面读/写回 Java 客户端。
Java 中的客户端是按照我想要的方式定义的。我正在寻找的是 PHP 中的等效服务器,但我似乎无法让它工作。
【问题讨论】:
-
最终都是从网络读取/写入网络的数据流。因此,语言不同这一事实一点也不“奇怪”。
-
那么,你能写一个例子来说明我如何在 PHP 服务器上读取从 java 客户端发送的字节和长字节吗?
-
正如我在下面指出的,使用通用协议,而不是特定于 Java 的协议。
-
您可能会查看 Quercus,这是一个可以在其中运行 PHP 的 Java 服务器。您可以从 PHP 调用 java 代码,就好像它是原生 PHP 函数一样。然后,您可以让 java 与 java 对话,但在 PHP 中进行处理。
-
或许在 PHP 端实现一个 SoapServer:php.net/manual/en/class.soapserver.php
标签: java php sockets connection