收录日期:2020/09/25 23:36:12 时间:2016/07/15 11:38:34 标签:Java SE
package yyw;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class server  extends Thread
{
private static ServerSocket ss;
private static  Socket s;
private JTextArea rec;
private static JTextArea sen;
private JLabel label;
private JLabel label2;
static JTextField tf2;
public void addframe(JFrame frame)
{
frame.setTitle("服务端程序");
frame.setSize(600,400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(100,100);
JLabel label=new JLabel("输入对方IP:");
JTextField tf=new JTextField(25);
tf.setText("127.0.0.1");
tf.setEditable(false);
JLabel label2=new JLabel("开放端口:");
JPanel p=new JPanel();
JPanel b=new JPanel();
final JTextField tf2=new JTextField(10);
tf2.setText("6000");
tf2.setEditable(false);
p.add(label);
p.add(tf);
p.add(label2);
p.add(tf2);
frame.getContentPane().add(p,"North");
final JTextArea rec=new JTextArea(30,40);
rec.setLineWrap(true);
JTextArea sen=new JTextArea(30,40);
sen.setLineWrap(true);
b.setLayout(new BorderLayout());
b.add(rec,"North");
b.add(sen,"Center");
frame.getContentPane().add(b,"Center");
JPanel u=new JPanel();
JButton send=new JButton("发送");
send.addActionListener(new ActionListener()
{

@Override
public void actionPerformed(ActionEvent e) 
{
try {
sendnews();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}

}
);

JButton open=new JButton("开启服务器");
JButton close=new JButton("关闭服务器");
close.addActionListener(new ActionListener()
{

@Override
public void actionPerformed(ActionEvent e)
{
try {

ss.close();
s.close();
System.exit(0);

} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}


}

}
);
open.addActionListener(new ActionListener()
{

@Override
public void actionPerformed(ActionEvent e)
{

while(true)
{
try 
{
Socket s=ss.accept();
new server().start();
rec.append("port:"+s.getPort()+" "+"localaddress:"+s.getLocalAddress());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}


}

});
u.add(open);
u.add(close);
u.add(send);
frame.getContentPane().add(u,"South");
frame.setVisible(true);




}

public static  void sendnews() throws Exception
{

OutputStream out=s.getOutputStream();
byte[] bt=sen.getText().getBytes();
out.write(bt);


}
public void run()
{
try
{
OutputStream out=s.getOutputStream();
byte[] news=".......连接服务器成功".getBytes();
out.write(news);
InputStream in=s.getInputStream();
byte[] buf=new byte[512];

while(in.read(buf)!=-1)
{
Date date=new Date();
int time=date.getHours();
SimpleDateFormat s=new SimpleDateFormat("yyyy-mm-dd HH:MM:SS");
String t=s.format(date);
String line=System.getProperty("line.separator");
    rec.append(t+""+line);
    rec.append(new String(buf));
    rec.append(line);
}


}
catch(Exception e)
{
e.getStackTrace();
}


}


public static void main(String[] args) throws Exception
{
server ser=new server();
JFrame frame=new JFrame();
ser.addframe(frame);
//int i=Integer.parseInt(tf2.getText());
ServerSocket ss=new ServerSocket(6000);


}

}

自己写了一个服务端程序
错了好多处 自己实力不足 检查不出来 还请各位大侠帮忙解决一下
错误 提示:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at yyw.server$3.actionPerformed(server.java:114)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
我还没开始学, 只是看您import了这么多的类,就吓爬了。。。
呵呵 慢慢来
学的swing啊!没有学到呢!
bug太多  没法修啊楼主 

要想没有exception加一句  ss = new ServerSocket(6000); 就可以了

 try 
                            {ss = new ServerSocket(6000); 
                                Socket s=ss.accept();
                                new server().start();
                                rec.append("port:"+s.getPort()+" "+"localaddress:"+s.getLocalAddress());
                            } catch (IOException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                            }



public static void main(String[] args) throws Exception
    {
        server ser=new server();
        JFrame frame=new JFrame();
        ser.addframe(frame);
        //int i=Integer.parseInt(tf2.getText());
       // ServerSocket ss=new ServerSocket(6000);
        
        
    }
写程序一步一步来,逐个添加功能这样程序调式起来容易,楼主的都是一些小毛病,比如说空指针。。。慢慢来吧,楼主!
ss没有初始化
唉 刚学的 还没有好的编程风格
还没学到这里来哦
哎~~~~~
写的很乱,不知道楼主想干什么?
ss初始化的位置弄错了,不应该写在main里面,应该写着类里面,可以写在open的动作里面。

多个监听Socket运行时出现一个问题,大家谈谈自己的看法? 一个循环问题 分享70DNF元素双天赋完美加点和理由 又来求助啦! 求助!!如何给新建的Access 数据库添加一个用户.. 一个简单的问题UInt32 是一个结构,为什么可以 UInt32 uTest = 32; 关于 avr programming 的一个问题 很急的一个问题。 BigDecimal ArcGIS和WPF的使用 看不惯了~这多倒分的? 关于运算符自增的问题 在线等。。。专业人士速来。。C#如何获取本机有效的IP啊 flash多文件上传组件 提交本页 window.setTimeout问题 一个非常简单的入门程序 一条麻烦的SQL语句 sql server 2005除分离外的备份方法 dao service action 在applicationContext的配置问题 执行jar包? 怎么在java平台下进行Web Service开发(有个例子最好) PB如何获取系統文件的默认图标 SQL Server 查询语句,请高手不吝赐教。 怎样判断字段中用逗号分隔相同内容? c#调用c++函数类型问题 一个MySQL关联的问题,请教..(带图) 求一条sql语句 华为 em200 AT%TCPSEND 发送汉字 如何使用DirectShow取得扫描方式