服务器端:
import java.io.*;
import java.net.*;
import java.awt.*;
import javax.swing.*;public class ControlServer extends JFrame implements Runnable { public JTextArea textArea; public DataInputStream input; public ControlServer() {
super("被控端"); textArea = new JTextArea();
Container con = getContentPane();
con.add(textArea);
setSize(300, 200);
setVisible(true); } public void run() { try {
ServerSocket server = new ServerSocket(7000);
Socket socket = new Socket();
input = new DataInputStream(socket.getInputStream());
    socket = server.accept();
String inStr = "";
inStr = input.readUTF();
if (inStr.equals("开始连接")) {
textArea.append("已经连接到被控设备" + "\n");
} else if (inStr.equals("向上移")) {
textArea.append("镜头向上移动" + "\n");
} else if (inStr.equals("向下移")) {
textArea.append("镜头向下移动" + "\n");
} else if (inStr.equals("向左移")) {
textArea.append("镜头向左移动" + "\n");
} else if (inStr.equals("向右移")) {
textArea.append("镜头向右移动" + "\n");
} else if (inStr.equals("聚焦")) {
textArea.append("开始聚焦" + "\n");
}
input.close();
} catch (IOException ex) {
ex.printStackTrace(); }
} public static void main(String[] args) { Thread thread = new Thread();
thread.start();
ControlServer p = new ControlServer();
p.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
客房端
import java.awt.*;import javax.swing.*;import java.io.*;
import java.net.*;
import java.awt.event.*;public class ControlPanel extends JFrame implements ActionListener{
protected JButton moveleft; protected JButton moveright; protected JButton moveup; protected JButton movedown; protected JButton focus; protected JButton connection; protected Socket socket; // public DataInputStream input;
public DataOutputStream output ;
    public JLabel promptlabel; public ControlPanel(int a) {
super("控制台");
Container con = getContentPane(); JPanel jpanel = new JPanel();
JPanel jpanel2 = new JPanel();
setLayout(new BorderLayout());
jpanel.setSize(300,200);
jpanel2.setSize(300,200);
promptlabel = new JLabel("设置提示");
promptlabel.setForeground(Color.red);
promptlabel.setBorder(BorderFactory.createTitledBorder("提示"));
moveleft = new JButton("向左移动");
moveright = new JButton("向右移动");
moveup = new JButton("向上移动");
movedown = new JButton("向下移动");
focus = new JButton("聚焦");
connection = new JButton("启动");
jpanel.add(moveup, BorderLayout.NORTH);
jpanel.add(movedown, BorderLayout.SOUTH);
jpanel.add(moveleft, BorderLayout.EAST);
jpanel.add(moveright, BorderLayout.WEST);
jpanel.add(focus, BorderLayout.CENTER);
jpanel.add(promptlabel,BorderLayout.EAST);
jpanel2.add(connection,BorderLayout.CENTER);
con.add(jpanel, BorderLayout.NORTH);
con.add(jpanel2,BorderLayout.SOUTH);
    setSize(600,400);
setVisible(true);
     moveleft.addActionListener(this);
moveright.addActionListener(this);
moveup.addActionListener(this);
movedown.addActionListener(this);
focus.addActionListener(this);
connection.addActionListener(this); } public void actionPerformed(ActionEvent e) {
if (e.getSource() == moveleft) {
doMoveleft(); }
if (e.getSource() == moveright) {
doMoveright();
}
if (e.getSource() == moveup) {
doMoveup();
}
if (e.getSource() == movedown) {
doMovedown();
}
if (e.getSource() == focus) {
doFocus();
}
if (e.getSource() == connection) {
doConnection();
}
} protected void doMoveleft() {
try {
output.writeUTF("向左移");

} catch (IOException e) {
e.printStackTrace();
}
} protected void doMoveright() {
try {
output.writeUTF("向右移");

} catch (IOException e) {
e.printStackTrace();
}
} protected void doMoveup() {
try {
output.writeUTF("向上移");

} catch (IOException e) {
e.printStackTrace();
}
} protected void doMovedown() {
try {
output.writeUTF("向下移");

} catch (IOException e) {
e.printStackTrace();
}
} protected void doFocus() {
try {
output.writeUTF("聚焦");

} catch (IOException e) {
e.printStackTrace();
}
}

public void run(){
while(true){

}
}
protected void doConnection() {


try {
socket = new Socket("10.1.42.84",7000);
output = new DataOutputStream(socket.getOutputStream());
     output.writeUTF("开始连接");
    
    promptlabel.setText("已经连接到被控端");
 
    connection.setEnabled(false);

} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
ControlPanel p = new ControlPanel(0);
p.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
问题是连接被拒绝我也不知道是什么意思,帮我看下是不是我的逻辑有问题并帮我改下我是真的不会了。谢谢!

解决方案 »

  1.   

    错误就是:java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at design.ControlPanel.doConnection(ControlPanel.java:144)
    at design.ControlPanel.actionPerformed(ControlPanel.java:86)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at design.ControlPanel.doMoveright(ControlPanel.java:101)
    at design.ControlPanel.actionPerformed(ControlPanel.java:74)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
      

  2.   

    错误就是:java.net.ConnectException: Connection refused: connect
    根本就没连上吗
    protected void doConnection() {
            
        
            try {
                socket = new Socket("10.1.42.84",7000);
    你确定你要连的IP是这个
    把这里改为127.0.0.1
      

  3.   

    我最近改了一下,把服务器端的Socket字段放到了构造函数里能连接上但是,点客户端的其它按钮就没有反应了,麻烦帮我运行下解决这个问题,另外IP没有错这是肯定的。