?? chatserver.java
字號:
package chatroom;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.io.*;
import java.net.*;
public class chatserver {
private JTextArea textArea_s;
private JTextField textField;
private JFrame frame;
private int port=8000;//定義服務器需要打開的端口號
private static ServerSocket serverSocket;//定義服務器端的套接字類
InputStreamReader Is;
OutputStream Os;
BufferedReader cin = null;//客戶端輸入流
PrintWriter PS;//客戶端輸流
String s;
static String said="";
Socket socket;//定義客戶端套接字類
/**
* Launch the application
* @param args
*/
public static void main(String args[]) {
try {
chatserver window = new chatserver();
window.frame.setVisible(true);
window.getrequest();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the application
*/
public chatserver() {
initialize();
try{
serverSocket = new ServerSocket(port);//創建一個ServerSocket對象
textArea_s.append("服務啟動\n");
} catch(IOException e){
textArea_s.append("監聽端口"+port+"失敗");
}
try{
socket = serverSocket.accept(); //等待客戶連接
if(socket.isConnected())
System.out.println("sucess!'");
else
System.out.println("fail!'");
}catch(IOException e){}
}
//收到客戶端請求
public String getrequest(){
String readLine =null;
while(true)
{
try{
Is=new InputStreamReader(socket.getInputStream() );
cin = new BufferedReader(Is);//獲得服務器端輸入流,并放入緩沖區
textArea_s.append("please wait client's message...\n");
readLine = cin.readLine();//從客戶端的輸出讀取一行數據
textArea_s.append("client said:"+readLine+"\n"); //打印字符串
}catch (Exception e){ textArea_s.append("error");}
// return readLine;
}
}
//發送相應給客戶端
public void sendrequest(String response){
try{
Os=socket.getOutputStream();
PS=new PrintWriter(Os,true);//
s=said; //讀取用戶輸入的字符串
textArea_s.append("you say:"+s+"\n");
PS.println(s); //將讀取得字符串傳給client
}catch (Exception e){}
}
/**
* Initialize the contents of the frame
*/
public void initialize() {
frame = new JFrame();
frame.getContentPane().setLayout(null);
frame.setTitle("server");
frame.setName("frame_server");
frame.setBounds(100, 100, 532, 375);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textField = new JTextField();
textField.setName("s_text");
textField.setBounds(24, 266,252, 30);//..setName("text_server");
textField.setMaximumSize(new Dimension(100, 10));
frame.getContentPane().add(textField);
final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
said = textField.getText();
if (said==null)
said="";
sendrequest(said) ;
// getrequest();
}
});
button.setName("s_button");
button.setBounds(322, 265, 84, 30);
button.setPreferredSize(new Dimension(20, 30));
button.setText("提交");
frame.getContentPane().add(button);
textArea_s = new JTextArea();
textArea_s.setName("s_textroom");
textArea_s.setBounds(22, 27, 424, 197);
textArea_s.setPreferredSize(new Dimension(300, 0));
frame.getContentPane().add(textArea_s);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -