chatserver.java
来自「一个简单的socket通信的聊天对话程序」· Java 代码 · 共 136 行
JAVA
136 行
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 + =
减小字号Ctrl + -
显示快捷键?