Socket连接问题,客户端和服务器,在自己电脑上可以连接,两台电脑一台做服务器,一台做客户端,客户端这边也是以管理员权限运行的,还是不行这是错误报告:java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(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 XXChatClient.ClientLogin$LoginAction.actionPerformed(ClientLogin.java:96)
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.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(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)
这是部分源代码:/**
*
*/
package XXChatClient;/**
* @author G50
*
*/
import java.awt.*;
import java.awt.event.*;import javax.swing.*;
import javax.swing.border.*;import java.io.*;
import java.net.*;public class ClientLogin extends JFrame{ /**
* @param args
*/
private JTextField nametxt;
private String name;
private JPasswordField pwdtxt;
public ClientLogin(){
init();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void init(){
this.setTitle("登录界面");
this.setSize(330, 230);
int x = (int)this.getToolkit().getScreenSize().getWidth();
int y = (int)this.getToolkit().getScreenSize().getHeight();
this.setLocation((x-this.getWidth())/2, (y-this.getHeight())/2);
this.setResizable(false);
/* URL url = this.getClass().getResource("D:\\loginlogo.png");
Icon icon = new ImageIcon(url);
JLabel label = new JLabel(icon);
this.add(label,BorderLayout.NORTH);*/
JPanel mainPanel = new JPanel();
Border border = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); //创建具有浮雕化外型的边框
mainPanel.setBorder(BorderFactory.createTitledBorder(border, "输入登录信息",
TitledBorder.CENTER,TitledBorder.TOP)); //向现有边框添加标题,并指定标题文本位置
this.add(mainPanel, BorderLayout.CENTER);
mainPanel.setLayout(null);
JLabel name = new JLabel("请输入昵称:");
name.setBounds(30, 30, 80, 22);
mainPanel.add(name);
nametxt = new JTextField();
nametxt.setBounds(115, 30, 120, 22);
mainPanel.add(nametxt);
JLabel pwd = new JLabel("请输入密码:");
pwd.setBounds(30, 60, 80, 22);
mainPanel.add(pwd);
pwdtxt = new JPasswordField();
pwdtxt.setBounds(115, 60, 120, 22);
mainPanel.add(pwdtxt);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
this.add(buttonPanel, BorderLayout.SOUTH);
JButton reset = new JButton("重 置");
reset.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
nametxt.setText("");
pwdtxt.setText("");
}
});
buttonPanel.add(reset);
JButton submit = new JButton("登 录");
submit.addActionListener(new LoginAction(this));
buttonPanel.add(submit);
}
class LoginAction implements ActionListener{
private JFrame self;
public LoginAction(JFrame self){
this.self = self;
}
public void actionPerformed(ActionEvent e){
System.out.println("用户名是"+nametxt.getText()+",密码是"+new String(pwdtxt.getPassword()));
name = nametxt.getText();
System.out.println(name);
try {
Socket socket = new Socket("192.168.1.102",8889);
new ChatClient(socket,name);
self.dispose();
} catch (UnknownHostException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
JOptionPane.showConfirmDialog(self, "找不到指定服务器","连接失败",
JOptionPane.OK_OPTION,JOptionPane.ERROR_MESSAGE);
} catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
JOptionPane.showConfirmDialog(self, "连接服务器出错,请重试!","连接失败"
,JOptionPane.OK_OPTION,JOptionPane.ERROR_MESSAGE);
}
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
/*try{
UIManager.setLookAndFeel(new SubstanceBusinessLookAndFeel());
}catch(UnsupportedLookAndFeelException e){
e.printStackTrace();
}
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);*/
new ClientLogin();
}}
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(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 XXChatClient.ClientLogin$LoginAction.actionPerformed(ClientLogin.java:96)
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.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(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)
这是部分源代码:/**
*
*/
package XXChatClient;/**
* @author G50
*
*/
import java.awt.*;
import java.awt.event.*;import javax.swing.*;
import javax.swing.border.*;import java.io.*;
import java.net.*;public class ClientLogin extends JFrame{ /**
* @param args
*/
private JTextField nametxt;
private String name;
private JPasswordField pwdtxt;
public ClientLogin(){
init();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void init(){
this.setTitle("登录界面");
this.setSize(330, 230);
int x = (int)this.getToolkit().getScreenSize().getWidth();
int y = (int)this.getToolkit().getScreenSize().getHeight();
this.setLocation((x-this.getWidth())/2, (y-this.getHeight())/2);
this.setResizable(false);
/* URL url = this.getClass().getResource("D:\\loginlogo.png");
Icon icon = new ImageIcon(url);
JLabel label = new JLabel(icon);
this.add(label,BorderLayout.NORTH);*/
JPanel mainPanel = new JPanel();
Border border = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); //创建具有浮雕化外型的边框
mainPanel.setBorder(BorderFactory.createTitledBorder(border, "输入登录信息",
TitledBorder.CENTER,TitledBorder.TOP)); //向现有边框添加标题,并指定标题文本位置
this.add(mainPanel, BorderLayout.CENTER);
mainPanel.setLayout(null);
JLabel name = new JLabel("请输入昵称:");
name.setBounds(30, 30, 80, 22);
mainPanel.add(name);
nametxt = new JTextField();
nametxt.setBounds(115, 30, 120, 22);
mainPanel.add(nametxt);
JLabel pwd = new JLabel("请输入密码:");
pwd.setBounds(30, 60, 80, 22);
mainPanel.add(pwd);
pwdtxt = new JPasswordField();
pwdtxt.setBounds(115, 60, 120, 22);
mainPanel.add(pwdtxt);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
this.add(buttonPanel, BorderLayout.SOUTH);
JButton reset = new JButton("重 置");
reset.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
nametxt.setText("");
pwdtxt.setText("");
}
});
buttonPanel.add(reset);
JButton submit = new JButton("登 录");
submit.addActionListener(new LoginAction(this));
buttonPanel.add(submit);
}
class LoginAction implements ActionListener{
private JFrame self;
public LoginAction(JFrame self){
this.self = self;
}
public void actionPerformed(ActionEvent e){
System.out.println("用户名是"+nametxt.getText()+",密码是"+new String(pwdtxt.getPassword()));
name = nametxt.getText();
System.out.println(name);
try {
Socket socket = new Socket("192.168.1.102",8889);
new ChatClient(socket,name);
self.dispose();
} catch (UnknownHostException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
JOptionPane.showConfirmDialog(self, "找不到指定服务器","连接失败",
JOptionPane.OK_OPTION,JOptionPane.ERROR_MESSAGE);
} catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
JOptionPane.showConfirmDialog(self, "连接服务器出错,请重试!","连接失败"
,JOptionPane.OK_OPTION,JOptionPane.ERROR_MESSAGE);
}
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
/*try{
UIManager.setLookAndFeel(new SubstanceBusinessLookAndFeel());
}catch(UnsupportedLookAndFeelException e){
e.printStackTrace();
}
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);*/
new ClientLogin();
}}
解决方案 »
- 请问swing和applet不一样吗?
- 怎么导入不了java.swing.JOptionPane
- 各位大侠。。偶是菜鸟。在一个HTML文件里调用js的时候卡住了。。。请大侠们来帮帮我。。。在线等。。。。
- [模式]这样的结构算是 Chain of responsibility 么?
- java.awt & javax.swing???
- 如何在一个类中调用另一个类?
- 简单问题:字符串格式转换问题(判断时间范围)
- 请问不用file类的createNewFile方法如何创建一个空文件????????????
- 有谁在digital unix 4.0d上装tomcat或者resin的经验?请教。
- 在 c:\jdk\1.3.1_02文件夹下的 src.jar 文件起什么作用?
- 哈希值就是“地址”?
- java解决生产者与消费者的多线程问题
再者使用telnet 去查下端口是都开放。