?? chatserversocket.java
字號:
//【例10.2】 采用Socket通信實現的聊天室程序。
//② Socket通信中的服務端程序
import java.net.*;
import java.io.*;
public class ChatServerSocket
{
private ChatJFrame chatframe; //聊天室的圖形用戶界面
private ServerSocket server; //提供TCP連接服務的ServerSocket對象
private Socket client; //與客戶端通信的Socket對象
public ChatServerSocket(int port, String name) //約定端口號、網名
{
try
{
server = new ServerSocket(port); //創建ServerSocket對象,提供TCP連接服務
client = server.accept(); //等待接收一個客戶端的連接申請
//連接成功后返回一個已連接的Socket對象
BufferedReader cin = new BufferedReader(new InputStreamReader(client.getInputStream()));
//獲得Socket對象的輸入流,創建字符輸入流
PrintWriter cout = new PrintWriter(client.getOutputStream(), true);
//獲得Socket對象的輸出流,創建字符輸出流
chatframe = new ChatJFrame(name," 服務端 端口"+port,cout); //創建聊天室的圖形用戶界面
chatframe.receive("連接 "+cin.readLine()); //接收并顯示已連接的對方網名
cout.println(name); //將自己網名發送給對方
String aline = "";
do //從輸入流接收對方發來的字符串
{
aline = cin.readLine(); //讀取一行字符串,輸入流結束時返回null
if (aline!=null && !aline.equals("bye")) //"bye"是約定離線信息
chatframe.receive(aline);
}while (aline!=null && !aline.equals("bye"));
chatframe.setWriter(null); //設置聊天室界面的輸出流對象為空
cin.close();
cout.close();
client.close(); //關閉Socket連接
server.close(); //停止等候客戶端的連接請求
}
catch(IOException e) {}
}
public static void main(String args[])
{
new ChatServerSocket(2001,"花仙子"); //約定端口號,指定網名
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -