質問編集履歴
1
質問内容を一つにしました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Processingでサーバークライアント通信をしたい
|
1
|
+
Processingでサーバークライアント間のデータ通信をしたい
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
初めてのプロセッシングという書籍の19章を参考にしていますが、そのままサンプルコードを使ってもうまくいきません。
|
3
3
|
processingのバージョンは3.5.4、windows10にて実行しています。
|
4
4
|
|
5
|
-
### 質問
|
5
|
+
### 質問
|
6
6
|
互いの画面にellipseでお絵描きするプログラムを実行してみましたが、なぜか相手から送信された座標にellipseを描くことができません。
|
7
7
|
クライアントプログラムのvoid clientEvent(Client client) 内のellipse(vals[0], vals[1], 16, 16);が機能しないのはなぜでしょうか。
|
8
8
|
試しにvoid draw内にellipse(vals[0], vals[1], 16, 16);を入れてみるとうまくいくのですが、その理由がわかりません。
|
@@ -65,39 +65,4 @@
|
|
65
65
|
client.write(out);
|
66
66
|
println("Sending: " + out);
|
67
67
|
}
|
68
|
-
```
|
68
|
+
```
|
69
|
-
|
70
|
-
### 質問2
|
71
|
-
そのほかにも「初めてのプロセッシング」に掲載されているソースそのまま使うとデータの送受信でデータの値がおかしくなります。
|
72
|
-
受け取りの処理にString in = client.readString();を使うとうまくいきましたが、下の元のソースのなにが原因なのかわかりません。
|
73
|
-
|
74
|
-
受信データがおかしくなるクライアント側プログラム
|
75
|
-
```
|
76
|
-
import processing.net.*;
|
77
|
-
Client client;
|
78
|
-
void setup() {
|
79
|
-
size(200, 200);
|
80
|
-
client = new Client(this, "127.0.0.1", 5204);
|
81
|
-
background(255);
|
82
|
-
fill(0, 100);
|
83
|
-
noStroke();
|
84
|
-
}
|
85
|
-
void draw() {
|
86
|
-
}
|
87
|
-
void clientEvent(Client client) {
|
88
|
-
String in = client.readStringUntil('\n');
|
89
|
-
if (in != null) {
|
90
|
-
println( "Receiving:" + in);
|
91
|
-
int[] vals = int(splitTokens(in, ",\n"));
|
92
|
-
ellipse(vals[0], vals[1], 16, 16);
|
93
|
-
}
|
94
|
-
}
|
95
|
-
void mouseDragged() {
|
96
|
-
String out = mouseX + "," + mouseY + "\n" ;
|
97
|
-
ellipse(mouseX, mouseY, 16, 16);
|
98
|
-
client.write(out);
|
99
|
-
println("Sending: " + out);
|
100
|
-
}
|
101
|
-
```
|
102
|
-
### 質問3
|
103
|
-
ネットワーク関連のプログラミングを基礎から学べるような書籍やサイトがあれば教えていただけると幸いです。
|