檔案狀態:    住戶編號:1669198
 噗噗熊 的日記本
快速選單
到我的日記本
看他的最新日記
加入我的收藏
瀏覽我的收藏
請問這魔術教學的西洋歌名字 《前一篇 回他的日記本  
 切換閱讀模式  回應  給他日記貼紙   給他愛的鼓勵  檢舉
篇名: Java-MSNSever
作者: 噗噗熊 日期: 2009.09.23  天氣:  心情:
import java.net.*;
import java.io.*;
import java.util.*;
public class MSNSever{
//↓設定存入Client端的所有相關物件
public static Vector v=new Vector();
public static void main(String[] args)throws IOException{
//↓建立連線服務的Port
SeverSocket ss=new SeverSocket(8080);
while(true){ //←建立多人連線
//↓等待並允許Client端連線
Socket cs=ss.accept();
GetConnect r=new GetConnect(cs.v);
Thread t=new Thread(r);
t.start();
}
}
}
class GetConnect implements Runnable{
private Socket cs;
private Vector v;
BufferedReader br;//←設定取得Client端的訊息
PrintWriter Out; //←設定傳至Client端的訊息
private String name = ""; //←取的目前連線的Client端暱稱
private String End = ""; //←結束Server端的服務
GetConnect(Socket cs,Vector v){
this.cs=cs;
this.v=v;
this.End=End;
}
//Client端連線中斷
void ExitConnect(){
v.remove(this);
SendMsg("ClientOut");
System.out.println(name+"已離開");
if(End.equals("End")){
System.out.println("即時通訊服務結束");
System.exit(0);
}
}
public void run(){
try{
br=new BufferedReader(new InputStreamReader(cs.getInputStream()));
Out=new PrintWriter(cs.getOutputStream(),true);
//Socket cs=ss.accept();
Out.println("歡迎光臨~~\n");
Out.println("請輸入暱稱\n");
name = br.readLine();
Out.println("Hi"+name+"您可以盡情聊天啦~~\n");
SendMsg("Clientln");
v.add(this);
while(true){
String str=br.readLine();
if(str==null){
br.close();
break;
}
else if(str.equals("End")){
End = str;
Out.println("即時通訊服務結束");
System.out.println("結束");
br.close();
break;
}
SendMsg(str);
}
cs.close();
}
catch(IOException ie){
System.err.println(ie);
}
ExitConnect();
}
String End(){
return End;
}
void SendMsg(String str){
try{
ListIterator it=v.listIterator();
while(it.hasNext()){
GetConnect gc=(GetConnect)it.next();
String getIn;
if(str.equals("ClientOut"))
getIn=name + "離線了~\n";
else if(str.equals("ClientIn"))
getIn=name + "上線了~\n";
else
getIn=name + "說 :"+str+"\n";
Socket tempSocket = gc.cs;
PrintWriter pOut = new PrintWriter(tempSocket.getOutputStream(),true);
pOut.println(getIn);
System.out.println(getIn);
}
}
catch(IOException ie){
System.err.println(ie);
}
}
}
標籤:
瀏覽次數:54    人氣指數:254    累積鼓勵:10
 切換閱讀模式  回應  給他日記貼紙   給他愛的鼓勵 檢舉
給本文愛的鼓勵:  最新愛的鼓勵
請問這魔術教學的西洋歌名字 《前一篇 回他的日記本  
 
給我們一個讚!