| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 584 人关注过本帖
标题:“客户机”问题
只看楼主 加入收藏
yinmingzheng13
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-4-13
结帖率:100%
收藏
 问题点数:0 回复次数:2 
“客户机”问题
??????? 点击启动按钮,不知为啥,资源耗尽
           望诸位大虾就原思路改进, 在下感激不尽   !!!!!!!!! (只实现部分功能)


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import *;
import *;

public class MyServer extends JFrame implements ActionListener
{
    int port = 8888;
    ServerSocket serverSocket;
    
    JToolBar toolBar;
    JButton startButton, stopButton, exitButton;
    JTextArea textArea;
    JPanel downPanel;
    JLabel sendToLabel;
    JComboBox comboBox;
    JTextField textField;
    JButton sendButton;
    
    public MyServer()
    {
        toolBar = new JToolBar();
        startButton = new JButton("启动服务");
        startButton.setEnabled(true);
        startButton.addActionListener(this);
        stopButton = new JButton("停止服务");
        stopButton.setEnabled(false);
        stopButton.addActionListener(this);
        exitButton = new JButton("退出");
        exitButton.addActionListener(this);
        toolBar.add(startButton);
        toolBar.add(stopButton);
        toolBar.addSeparator();
        toolBar.add(exitButton);
        
        textArea = new JTextArea();
        textArea.setEditable(false);
        
        downPanel = new JPanel();
        sendToLabel = new JLabel("发送至:");
        comboBox = new JComboBox();
        comboBox.insertItemAt("所有人",0);
        comboBox.setSelectedIndex(0);
        textField = new JTextField(13);
        textField.setEditable(false);
        sendButton = new JButton("发送");
        sendButton.addActionListener(this);
        downPanel.add(sendToLabel);
        downPanel.add(comboBox);
        downPanel.add(textField);
        downPanel.add(sendButton);
        
        this.add(toolBar,"North");
        this.add(textArea,"Center");
        this.add(downPanel,"South");
        this.setSize(360,500);
        this.setResizable(false);
        this.setLocation(500,200);
        this.setTitle("服务器");
        this.show();
    }
    
    
    public void actionPerformed(ActionEvent e)
    {
        Object obj = e.getSource();
        
        if(obj==startButton)
        {
            //textArea.setText("服务器已开启");
            startService();
        }
        
        else if(obj==stopButton)
        {
            stopService();    
        }
        
        else if(obj==exitButton)
        {
            System.exit(0);
        }
    }
    
    
    public void startService()
    {
        textArea.append("服务器已开启");
        startButton.setEnabled(false);
        stopButton.setEnabled(true);
        sendButton.setEnabled(true);
        try{
            serverSocket = new ServerSocket(port);
            
            while(true)
            {
                Socket socket = serverSocket.accept();
                new MyThread(socket).start();
            }
        }catch(Exception e){
            e.printStackTrace();
        }    
    }
    
    
    public void stopService()
    {
        textArea.setText("服务器已经关闭");
        startButton.setEnabled(true);
        stopButton.setEnabled(false);
    }
    
    
    public static void main(String[] args)
    {
        new MyServer();
    }
}




class MyThread extends Thread
{
    Socket s;
    ObjectOutput output;
    ObjectInput input;
    
    public MyThread(Socket s)
    {
        this.s = s;
    }
    
    public void run()
    {
        try{
            output = new ObjectOutputStream(s.getOutputStream());
            input  = new ObjectInputStream(s.getInputStream());
        }catch(Exception e){
            e.printStackTrace();
        }
        
    }
}


[[it] 本帖最后由 yinmingzheng13 于 2008-11-27 19:40 编辑 [/it]]
搜索更多相关主题的帖子: 客户机 
2008-11-27 19:32
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
你有一个while(true),随便一个这个东西都会占用很多资源

[url=http://shop63425653./]/cvbnm/a6/1d/f4/7dd1720119cf3b1dcfb570b467b24051.jpg" border="0" />[/url]
2008-11-28 09:04
yinmingzheng13
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-4-13
收藏
得分:0 
回复 第2楼 freish 的帖子
那有点    但注释了while  照样没有反应
  只是想在“文本域”内显示信息

无师自通
2008-11-28 19:02
快速回复:“客户机”问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032585 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved