用java写的基于Socket的简单即时通讯程序

 

/*
 *服务端
 
*/

package  edu.jlu.fuliang;

import  java.io. * ;
import  java.net. * ;
import  java.awt.event.ActionEvent;
import  java.awt.event.ActionListener;
import  java.awt.event.KeyAdapter;
import  java.awt.event.KeyEvent;

import  javax.swing. * ;

public   class  Server  extends  JFrame  implements  Runnable  {
 
private ServerSocket server;
 
private Socket connection;
 
private OutputStream output;
 
private InputStream input;
 
private Thread outThread;
 
private JTextArea display;
 
private JTextField text1;
 
private JButton startButton;
 
 
public static void main(String args[]) {
  Server s 
= new Server();
  s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }


 
public Server() {
  
super("Server");
  startButton 
= new JButton("Start the server");
  text1 
= new JTextField(20);
  display 
= new JTextArea(730);
  display.setEditable(
false);
 Container container 
= getContentPane();
  container.setLayout(
new BorderLayout());
  container.add(startButton,BorderLayout.NORTH);
  container.add(
new JScrollPane(display),BorderLayout.CENTER);
  container.add(text1,BorderLayout.SOUTH); 

 
/*
   * 给开始按钮添加监听器。
   
*/

  startButton.addActionListener(
new ActionListener(){
   
public void actionPerformed(ActionEvent e) {
    display.setText(
"启动服务器... ");
    startButton.setEnabled(
false);
    
try {
     
//端口设为5000,最大连接请求为100个
     server = new ServerSocket(5000100);
     connection 
= server.accept();
     output 
= connection.getOutputStream();
     input 
= connection.getInputStream();
     output.write(
"连接成功! ".getBytes());
     outThread 
= new Thread(Server.this);
     outThread.start();
     }
 catch (IOException ee) {
    }

   }

  }
);
  
  
/*
  /*给文本域添加键盘监听器,按回车发送信息。
        
*/

  
  text1.addKeyListener(
new KeyAdapter(){
   
public void keyPressed(KeyEvent ke) {
    
if(ke.getKeyCode() == KeyEvent.VK_ENTER){
     
byte writeBytes[] = new byte[50];
     String s 
= "Server: " + text1.getText() + "";
     text1.setText(
"");
     writeBytes 
= s.getBytes();
     display.append(s
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值