ネットワーク通信
※最新版のjarファイル: basic.jar を利用のこと。
ネットワーク通信を行うゲームは多い。
ここでは、BasicGraphicsのネットワーク通信機能の基本的な使い方を説明する。
例では、1サーバ1クライアントのネットワーク通信を扱うが、BasicGraphicsでは1サーバnクライアントの通信もサポートしている。
BasicGraphicsのネットワーク通信は以下の手順で行う。
1) サーバ側プログラムで connect(ポート番号)を呼ぶ
2) クライアント側プログラムで connect(ホスト名, ポート番号)を呼ぶ
3) どちらかで send(int)を呼ぶ
4) もう片方で int receiveint()を呼ぶ
3)4)を繰り返しネットワーク通信を行う。
サーバ側プログラム Server.java
import jp.ac.tuis.basic.*;
public class Server {
public static void main(String args[]){
BasicGraphics g = new BasicGraphics();
g.println("server");
g.connect(50000); //クライアント接続待ち
g.println("connected!");
int data = 99; //送信するデータ
g.send(data); //クライアントに数値を送信
int reply = g.receiveint(); //クライアントから数値を受信
g.println(reply); //受信した数値を表示
}
}
クライアント側プログラム Client.java
import jp.ac.tuis.basic.*;
public class Client {
public static void main(String[] args){
BasicGraphics g = new BasicGraphics();
g.println("client");
g.connect("localhost", 50000); //サーバに接続
g.println("connected!");
int data = g.receiveint(); //サーバから数値を受信
g.println(data); //受信したデータを表示
g.send(data+1); //サーバに数値を送信
}
}
実行はサーバを先に立ち上げて、接続待ち状態にする必要がある。
> javaw -cp basic.jar;. Server
> javaw -cp basic.jar;. Client