0
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 中的等效服务器,但我似乎无法让它工作。

4

2 回答 2

0

我实际上是用另一种方式编写的,客户端是 PHP Web 应用程序,服务器是 jsvc 下的 Java 守护程序。

首先要考虑的是定义传输协议,因为这两种语言的类型和对象表示不同,并且它们可能在具有不同数字表示的硬件上运行。我推荐 JSON 或 XML。

之后,您的服务器可能需要能够处理多个连接,因此需要线程或非阻塞套接字 I/O。

于 2013-01-14T01:11:57.943 回答
0

首先,您应该.flush()在 Java 代码中写入套接字之后调用。否则数据不会被发送到服务器。

然后,网络端点之间的通信只是关于所使用协议的协议。这里没有特定的语言...

于 2013-01-14T01:06:08.207 回答