JSONを使用したPHPスクリプトを使用してサーバーと通信する方法を知っていますが、サーバーがJavaで記述されている場合、Javaプログラムを使用してサーバーと通信するにはどうすればよいですか。
それは同じでしょうか、それともJSONを除外するより簡単な方法がありますか?
私がこれを行うのに慣れている方法は、POSTリクエストを使用してから、JSONでエンコード/デコードすることです。
Webサーバーではありません
JSONを使用したPHPスクリプトを使用してサーバーと通信する方法を知っていますが、サーバーがJavaで記述されている場合、Javaプログラムを使用してサーバーと通信するにはどうすればよいですか。
それは同じでしょうか、それともJSONを除外するより簡単な方法がありますか?
私がこれを行うのに慣れている方法は、POSTリクエストを使用してから、JSONでエンコード/デコードすることです。
Webサーバーではありません
最も効率的な方法は、Socketsを使用することです。このチュートリアルは、クライアント/サーバーの例をうまく示しています。
このようにコーディングできるクライアントとして、以下に示すサーバーソケットプログラミングを使用できます。
import java.io.*;
import java.net.*;
public class Client
{
public static void main(String args[])
{
try
{
Socket server;
String str="";
DataInputStream d=new DataInputStream(System.in);
PrintStream toserver;
BufferedReader fromserver;
server=new Socket("117.198.219.36",1096); //your ip to connect and port no through which you will connect to server
InputStreamReader isr=new InputStreamReader(server.getInputStream());
fromserver= new BufferedReader(isr);
toserver=new PrintStream(server.getOutputStream());
while(true)
{
str=":"+d.readLine();
toserver.println(str);
str=fromserver.readLine();
System.out.println(str);
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
これは、リクエストを送信するクライアント側のプログラムです。
これで、サーバー側のプログラムが以下に表示されます。クライアントに接続するために同じポート番号を指定します。
import java.io.*;
import java.net.*;
public class Server
{
public static void main(String args[])
{
ServerSocket sc;
Socket client;
DataInputStream d;
PrintStream toClient;
BufferedReader fromClient;
String str="";
try
{
d=new DataInputStream(System.in);
sc=new ServerSocket(1096); //the same port no that we had given at client side
System.out.println("ServerStarted");
client=sc.accept();
InputStreamReader isr=new InputStreamReader(client.getInputStream());
fromClient=new BufferedReader(isr);
toClient=new PrintStream(client.getOutputStream());
while(true)
{
str=fromClient.readLine();
System.out.println(str);
str=":"+d.readLine();
toClient.println(str);
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
それらを使用してみてください。これを介して接続できるようになります。これがお役に立てば幸いです。
必要に応じて通信できますが、Java開発者はrpc(http://en.wikipedia.org/wiki/Remote_procedure_call)を優先します。これは、一部のフレームワークで実装する最も簡単な方法ですが、メッセージを完全に制御する必要がある場合は、それを実行できます。 jsonを考えたり、ソケットを介して直接考えたりしました(ただし、これを行うことはお勧めしません)。