初歩的なソケット通信(java)
javaのソケット通信プログラムについて質問させて頂きます。まだまだ基礎の段階なのですが、詰まってしまたので、良かったら教えてください。
以下プログラムコード
-------------------------------------
//サーバー側
import java.net.*;
import java.io.*;
public class Server {
static int port = 12345;
public static void main(String[] args) {
try{
//サーバソケットの作成
ServerSocket ssoc = new ServerSocket(port);
//メインループ
while(true){
try{
System.out.println("クライアントからの接続を"+ port +"で待ちます");
Socket soc = ssoc.accept();
System.out.println(soc.getInetAddress().getHostName()+"から接続を受けました");
//処理をスレッドに任せます
new Connect(soc);
}catch(IOException e1){
e1.printStackTrace();
}
}
}catch(IOException e2){
e2.printStackTrace();
}
}
}
class Connect extends Thread{
private Socket socket = null;
public Connect(Socket socket){
this.socket = socket;
//スレッド開始
this.start();
}
public void run(){
try{
//出力ストリームを取得
OutputStream os = socket.getOutputStream();
PrintWriter out = new PrintWriter(os,true);
//入力ストリームを取得
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader in = new BufferedReader(isr);
String inputLine;
while((inputLine = in.readLine()) != null){
//System.out.println(inputLine);
out.println(inputLine);
}
System.out.println("処理が終わったので接続を切ります");
in.close();
out.close();
socket.close();
}catch(Exception e1){
try{
socket.close();
}catch(Exception e2){
e2.printStackTrace();
}
}
}
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
>まだまだ基礎の段階なのですが、詰まってしまたので、良かったら教えてください。
どこがどのように詰まってしまったのでしょうか。
質問するのであれば最低限の仕様と現在どのようになってしまってわからないのかを記述しないと的確な回答は難しいですよ。
気になったところと言えば
// 処理をスレッドに任せます
new Connect(soc);
という処理がありますがスレッド処理するのであれば
Thread thread = new Thread(new Connect(soc));
thread.start();
では無いでしょうか。
(実際に動かしたわけでは無いので適切な処理かはわかりません)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csv出力について
-
九九を横に表示する。
-
Class.forNameでエラーになる
-
equalsの逆
-
CSVファイルを , で句切って...
-
HashMap.putについて
-
[JAVA]エラーが解決できません。
-
yyyymmddからyyyy/mm/d...
-
テキストファイルにおいて任意...
-
javaからffmpegの利用
-
javaのファイル読み込み時の文...
-
Servletでテキストボックスに入...
-
Javaの質問です。テキストファ...
-
FileクラスのcanRead/canWrite...
-
JSPやサーブレットでSystem.out...
-
Java配列でNullPointerExceptio...
-
ダブルクォーテーションのrepla...
-
System.err. printlnとSystem.o...
-
ORA-01858: 数値を指定する箇所...
-
ResultSetの内部構造(Java)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
csv出力について
-
equalsの逆
-
Javaの質問です。テキストファ...
-
InputStream.read()でタイムア...
-
Inputstreamについて
-
javaのfor文が機能してないみた...
-
テキストファイルにおいて任意...
-
Windowsでの標準入力の終了の仕方
-
Javaでデータに登録する度にID...
-
テキストファイルから空白行をよむ
-
Java int sum = 0は必要ですか?
-
以下のJAVAプログラムでご質問...
-
FileクラスのcanRead/canWrite...
-
拡張子の読み込み制限を設けた...
-
九九を横に表示する。
-
Class.forNameでエラーになる
-
ObjectInputStreamとStreamCorr...
-
戻り値を使用する呼出
-
JAVAでエラーがでる。
おすすめ情報