

Androidアプリの開発でJavaのSocketを使って通信しようと考えています。
現在、ソースが手元にない状態なのですが、
SocketDebuggerをサーバとして、クライアントプログラムを書きました。
流れは、指定のポート、アドレスに接続して入力された文字列をサーバが受け取り、
メッセージを返信するものです。
なのですが、サーバ側から再度メッセージを送信したときに今度はクライアント側で
受け取りそれにまた返信する…ということをやりたいのですが、今の状況ではサーバからのメッセージを受け取ることが出来ません。
プログラムは以下のサイトを参考にして少し書き換えました。
http://team-pag.interprism.co.jp/member/okazawa/ …
今のままだとクライアント側から送信するとそのまま接続が終了してしまうのですが、
たとえば「exit」を受け取ったら接続をやめる、、それまではサーバからのメッセージも受け取れる状態にする…というようにやりたいです。
ご教授お願いします!!
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
技術的にはServerSocketを作り、bind、acceptで
ソケット通信のサーバ側は処理します。
しかし、その前にプロトコルはどうなっていますか?
サーバからデータが無秩序に送られてくるような
プロトコルなんでしょうか?
よくあるFTPなどは1要求1応答と決まっています。
大量のデータを受け渡す時はデータ用ソケットを別に
作って処理します。
この時はクライアント側がサーバのように振舞いますが、
相手(サーバ)に自分(クライアント)のアドレスを知らせる
必要があるので、accept前にアドレスを通知する要求を
サーバに送るようになっています。
無秩序な送受信(TELNETはこのタイプ)なら、ソケットを
閉じなければよいだけの話です。
その他に、受信は受身で対応しなければならない性格
から、本体とは別のスレッドで処理するのが普通です。
また、通信は相手と通信経路の問題があるので、何時
切断されるか分かりません。そういった対処も考えて
おかなければなりません。
経験的に見てマルチスレッドでないと実用的なものは
難しいでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UDP通信におけるbind関数について
-
TCP/IP通信時のサーバーからの受信
-
エクセル VBA でのCOMポート...
-
Socket通信を待ち受け状態にす...
-
空きポートの取得方法
-
Connectエラーが出てしまう・・...
-
ソケット通信 同じポート番号...
-
非ブロッキングソケットのrecv...
-
UdpClient 送信元のIPアドレ...
-
送信したデータの一部が文字化...
-
SendRequestでヘッダが受信され...
-
vbでの232c接続プログラムについて
-
ソケットのrecvの戻り値が0
-
ソケットを用いた1対多通信につ...
-
TCP/IP通信でのコネクシ...
-
Javaのパケットキャプチャについて
-
同じLAN内パソコンのIPアドレス...
-
相手のIPアドレスを取得する方法
-
Winsockで接続待ちタイムアウト...
-
Javascritpでソケット通信?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
UDP通信する時に、相手にどうや...
-
UDP通信におけるbind関数について
-
エクセル VBA でのCOMポート...
-
ソケットのクローズについて
-
ソケットのrecvの戻り値が0
-
VB6のwinsockでconnectできない
-
Socket通信の0バイト受信について
-
recv関数でフリーズしてしまう
-
Winsockで接続待ちタイムアウト...
-
Connectエラーが出てしまう・・...
-
送信したデータの一部が文字化...
-
【ajax】 XMLHttpRequestオブジ...
-
ソケット通信
-
closeされたsocketへの動作につ...
-
wsdlからのサービス化を行い。
-
Cにおける通信プログラミングの...
-
UdpClient 送信元のIPアドレ...
-
非ブロッキングソケットのrecv...
-
ソケットを用いた1対多通信につ...
おすすめ情報