?? clientthread.java
字號:
import java.io.*;
import java.net.*;
import java.util.*;
/**
* @author yeeku.H.lee kongyeeku@163.com
* @version 1.0
* <br>Copyright (C), 2005-2008, yeeku.H.Lee
* <br>This program is protected by copyright laws.
* <br>Program Name:
* <br>Date:
*/
public class ClientThread extends Thread
{
//該客戶端線程負責處理的輸入流
BufferedReader br = null;
//使用一個網絡輸入流來創建客戶端線程
public ClientThread(BufferedReader br)
{
this.br = br;
}
public void run()
{
try
{
String line = null;
//不斷從輸入流中讀取數據,并將這些數據打印輸出
while((line = br.readLine())!= null)
{
System.out.println(line);
/*
本例僅打印了從服務器端讀到的內容。實際上,此處的情況可以更復雜:
如果我們希望客戶端能看到聊天室的用戶列表,則可以讓服務器在
每次有用戶登陸、用戶退出時,將所有用戶列表信息都向客戶端發送一遍。
為了區分服務器發送的是聊天信息,還是用戶列表,服務器也應該
在要發送的信息前、后都添加一定的協議字符串,客戶端此處則根據協議
字符串的不同而進行不同的處理!
更復雜的情況:
如果兩端進行游戲,則還有可能發送游戲信息,例如兩端進行五子棋游戲,
則還需要發送下棋坐標信息等,服務器同樣在這些下棋坐標信息前、后
添加協議字符串后再發送,客戶端就可以根據該信息知道對手的下棋坐標。
*/
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
//使用finally塊來關閉該線程對應的輸入流
finally
{
try
{
if (br != null)
{
br.close();
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -