赛迪网 > IT技术 IT技术重磅推荐 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Java实现nc功能实例

发布时间:2008.02.27 04:48     来源:赛迪网技术社区    作者:执木

/*
  socket编程实例
  一个用java实现nc的功能的小例子
  请各位高手指教:shengshuai@126.com
*/

import java.net.*;
import java.io.*;
import javax.swing.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.UIManager;
import javax.swing.plaf.metal.MetalLookAndFeel;

public class fs
{
 public fs()
 {
  fsframe Frame1 = new fsframe();
  
  Frame1.validate();
  
  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  Dimension frameSize = Frame1.getSize();
  if (frameSize.height > screenSize.height)
  {
   frameSize.height = screenSize.height;
  }
  if (frameSize.width > screenSize.width)
  {
   frameSize.width = screenSize.width;
  }
  Frame1.setLocation((screenSize.width - frameSize.width)/2,(screenSize.height - frameSize.height)/2);
  //Frame1.setlocation(0,0);
  Frame1.setDefaultCloseOperation(3);
  Frame1.show();
 }
 public static void main(String[] args)
 {
  try
  {
   UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
  }catch(Exception e)
  {
   e.printStackTrace();
  }
  new fs();
 }
}

 


class fsframe extends JFrame
{
 String indata = null;
 DataInputStream in;
 DataOutputStream out;
 Socket conn;
 
 JLabel la = new JLabel("请输入:");
 
 JButton lianjie = new JButton("连接");
 JButton act = new JButton("执行");
 
 JTextField hostfield = new JTextField("www.126.com",10);
 JTextField portfield = new JTextField("80",2);
 
 JTextArea log = new JTextArea(10,0);
 JTextArea input = new JTextArea(4,0);
 
 JPanel contorlpanel = new JPanel();
 JPanel inputPanel = new JPanel();
 
 JScrollPane logscrollpane = new JScrollPane();
 JScrollPane inputsrollpane = new JScrollPane();
 
 public fsframe()
 {
   

  setSize(Toolkit.getDefaultToolkit().getScreenSize().width/2,380);
  try
  {
   
   
   this.setResizable(false);
   this.getContentPane().setLayout(new BorderLayout());
   this.setBackground(Color.red);
      
   log.setText("");
   log.setEditable(false);
   logscrollpane.getViewport().add(log);
   this.getContentPane().add(logscrollpane,BorderLayout.NORTH);
   
   contorlpanel.setLayout(new FlowLayout());
   contorlpanel.add(la);
   contorlpanel.add(hostfield);
   contorlpanel.add(portfield);
   contorlpanel.add(lianjie);
   contorlpanel.add(act);
   this.getContentPane().add(contorlpanel,BorderLayout.CENTER);
   
   inputsrollpane.getViewport().add(input);
   this.getContentPane().add(inputsrollpane,BorderLayout.SOUTH);
   
   
   
   
   lianjie.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    
    String host = hostfield.getText();
    int port = Integer.parseInt(portfield.getText());
 
    if(host.equals("")||(portfield.getText().equals("")))
    JOptionPane.showMessageDialog(null, "主机和端口为空!");
     
    log.append("正在连接……\n"); 
    
    try{
     
      conn = new Socket(InetAddress.getByName(host),port);
      in = new DataInputStream(conn.getInputStream());
      out = new DataOutputStream(conn.getOutputStream());
      log.append("已经连接至主机"+host+"端口:"+port+"\n"); 
      //while((indata=in.readLine())!="") log.append(indata);
     }catch(UnknownHostException un)
     {
      log.append("UnknownHostException:"+un+"\n");
      JOptionPane.showMessageDialog(null, un);
     }catch(IOException iod)
     {
      log.append("IOException:"+iod+"\n");
      JOptionPane.showMessageDialog(null,iod);
     }     
    }
   });
   
   
   
   act.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent ac){
    
    try{
     
     log.append(input.getText()+"\n");
     out.writeBytes(input.getText());
     out.writeBytes("\n");
     input.setText(""); 
     if((indata=in.readLine())!="") log.append(indata);
     }catch(IOException iod)
     {
      log.append("IOException:"+iod+"\n");
      JOptionPane.showMessageDialog(null,iod);
     }
   
    }
   });  
   
   
   
  }catch(Exception e)
  {
   log.append("Exception"+e);
  }
 }


}

          (责任编辑:包春林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· VS 2005中调试JavaScript的方法 (02-26) · 使用VS 2005创建.NET 1.1应用 (02-26)
· 在VS 2005中创建并使用MasterPage (02-26) · 用VS2005开发ASP.NET 2.0数据库程序 (02-26)
· 在VS2005中打造自己的Starter Kits (02-26) · 在Visual Studio 2005中实现VB重构 (02-26)
· 用Visual Studio 2005创建宏代码生成器 (02-26) · Visual Studio 2005中编译调试新功能 (02-26)
· 内嵌汇编 (02-26) · 即时交流功能 (02-26)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 北京工商局:网店办牌照8月1日肯定实施
· 工信部:全国移动电话用户已达6.01亿户
· 签合同前的四问 谈八大厂商“云计算”理念
· 亚略特烟草解决方案 移民安置信息管理系统
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统