?? server.java
字號:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
public class Server
{
public static void main(String[] args)
{
ServerService MyServer=new ServerService(6544,10);
}
}
class ServiceThread extends Frame implements Runnable
{//當CLIENT有請求時 SERVER端創(chuàng)建一個FRAME用于與之交互數(shù)據(jù)
ServerService FatherListener;
Socket ConnectedClient;
Thread ConnectThread;
Panel ListenerPanel;
TextArea ServerMeg;
public ServiceThread(ServerService sv,Socket s)//構造函數(shù)
{
FatherListener=sv;
ConnectedClient=s;
ConnectThread=new Thread(this);
setTitle("Server(服務器端)");
setLayout(new BorderLayout());
ServerMeg=new TextArea(13,50);
add("Center",ServerMeg);
setResizable(false);
pack();
show();
InetAddress ClientAddress=ConnectedClient.getInetAddress();
//獲得請求服務的CLIENT端計算機的IP地址
ServerMeg.appendText("Server connect"+" to: \n\n"+ClientAddress.toString()+".\n");
}
public void run()
{
try{
DataInputStream in=new DataInputStream(//獲得從CILENT讀入的數(shù)據(jù)流
new BufferedInputStream(ConnectedClient.getInputStream()));
PrintStream out=new PrintStream(//獲得向CILENT輸出的數(shù)據(jù)流
new BufferedOutputStream(ConnectedClient.getOutputStream()));
out.println(" Hello!Welcome connect to me(Server)!\r");
out.flush();//向CLIENT端輸出信息
String s=in.readLine();//從CLIENT端讀入信息
while(!s.equals("Bye"))
{
ServerMeg.appendText("client端輸入的信息為: \n"+s);
s=in.readLine();//讀入CLIENT端寫入的下一行信息
}
ConnectedClient.close();
}
catch(Exception e){}
FatherListener.addMeg("Client"+"closed."+"\n");
dispose();
}//run()
}
//*********************************************************************************************//
class ServerService extends Frame //服務器端的監(jiān)聽窗口
{
ServerSocket m_sListener; //監(jiān)聽器
TextArea ListenerMeg; //顯示信息的監(jiān)聽器窗口
public ServerService(int Port,int Count)
{
try{
m_sListener=new ServerSocket(6544,10);//建立監(jiān)聽服務
setTitle("Server Listener(監(jiān)聽器窗口)"); //建立監(jiān)聽服務的窗口并顯示
this.addWindowListener(new WinAdpt());
setLayout(new BorderLayout());
ListenerMeg=new TextArea(" [監(jiān)聽服務已啟動啦]\n\n\n",10,50);
add("Center",ListenerMeg);
setResizable(false);
pack();
show();
while(true)
{
Socket Connected=m_sListener.accept();//接受來自Client端的請求
InetAddress ClientAddress=Connected.getInetAddress();
ListenerMeg.appendText("Client "+" connected "+" from:\n\n"+ClientAddress.toString()+" .\n");
//獲得客戶機的IP地址 建立新線程新窗口與這個CLIENT進行通信
ServiceThread MyST=new ServiceThread(this,Connected);
MyST.ConnectThread.start();
}
}
catch(IOException e){}//異常處理方法
}
public void addMeg(String s)
{
ListenerMeg.appendText(s);
}
}//ServerService Class
class WinAdpt extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
((Frame)e.getWindow()).dispose();
System.exit(0);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -