当前位置:编程学习 > JAVA >>

麻烦各位前辈解决一下,怎样让client连接到服务器。

这是一个聊天室client端,怎样连接到服务器,求各位解决。

import javax.swing.SwingUtilities;
import java.util.Date;
import java.awt.BorderLayout;
import java.text.*;
import java.util.*;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
//import java.awt.Point;
import java.awt.Color;
import javax.swing.JTextArea;
import javax.swing.JLabel;
//import java.awt.GridBagLayout;
import java.awt.event.KeyEvent;
import java.awt.FlowLayout;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import java.awt.ComponentOrientation;
import java.awt.Rectangle;
import java.net.InetAddress;

import javax.swing.SwingConstants;
import javax.swing.JScrollPane;
import javax.xml.crypto.Data;
import java.net.UnknownHostException;
//import java.sql.Date;
public class UserFrm extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

private JLabel lalOnline = null;

private JPanel pnlsend = null;

private JLabel lblSpeak = null;

private JTextField txtSend = null;

private JButton btnSend = null;

private JLabel lblIp = null;

private JButton btnSmile = null;

private JScrollPane slpScroll = null;

private JTextArea txaTalk = null;
/**
 * This method initializes pnlsend
 * 
 * @return javax.swing.JPanel
 */
private JPanel getPnlsend() {
if (pnlsend == null) {
FlowLayout flowLayout = new FlowLayout(); flowLayout.setAlignment(java.awt.FlowLayout.CENTER);
flowLayout.setVgap(13);
flowLayout.setHgap(31);
lblIp = new JLabel();
String a,b;
try {
InetAddress ip = InetAddress.getLocalHost();
a = ip.getHostAddress();
b = ip.getHostName();
//c = ip.getHostAddress();
System.out.println("IP地址:"+a);
System.out.println("主机名:"+b);
// InetAddress net = InetAddress.getByName("www.baidu.com "); // 根据域名获取IP地址
// System.out.println(net);


lblIp.setText("本机IP地址:"+a);
lblIp.setPreferredSize(new Dimension(155, 22));
lblIp.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED);
}catch (UnknownHostException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
lblSpeak = new JLabel();
lblSpeak.setText("发言:");
lblSpeak.setDisabledIcon(new ImageIcon("F:/000.jpg"));
lblSpeak.setFont(new Font("\u5b8b\u4f53", Font.BOLD, 12));
pnlsend = new JPanel();
pnlsend.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
pnlsend.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 14));
pnlsend.setLayout(flowLayout);
pnlsend.setPreferredSize(new Dimension(120, 50));
pnlsend.add(getBtnSmile(), null);
pnlsend.add(lblSpeak, null);
pnlsend.add(getTxtSend(), null);
pnlsend.add(getBtnSend(), null);
pnlsend.add(lblIp, null);
}
return pnlsend;
}

/**
 * This method initializes txtSend
 * 
 * @return javax.swing.JTextField
 */
private JTextField getTxtSend() {
if (txtSend == null) {
txtSend = new JTextField();
txtSend.setPreferredSize(new Dimension(178, 25));
txtSend.setFont(new Font("\u5b8b\u4f53", Font.BOLD, 12));
txtSend.setText("欢迎来到北科大QQ聊天室 !");
long m =System.currentTimeMillis();  // 获取当前时间
System.out.println("当前时间 :"+new Date(m));
//txtSend.setText("");
txtSend.setVisible(true);
}
return txtSend;
}


/**
 * This method initializes btnSend
 * 
 * @return javax.swing.JButton
 */
private JButton getBtnSend() {
if (btnSend == null) {
btnSend = new JButton();
btnSend.setPreferredSize(new Dimension(100, 22));
btnSend.setFont(new Font("\u5b8b\u4f53", Font.BOLD, 12));
btnSend.setActionCommand(" 发  送");
btnSend.setText(" 发 送");
btnSend.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
 
//  处理事件
// long m =System.currentTimeMillis();  // 获取当前时间
// System.out.println("当前时间 :"+new Date(m));
/********************************************/
Date now = new Date();   // 获取当前时间
DateFormat t = DateFormat.getDateTimeInstance();
String time = t.format(now);
/********************************************/
String talkWords = txtSend.getText();
if(talkWords.length()!=0){
txaTalk.append(talkWords+"   "+time+"\n");
}
// long m =System.currentTimeMillis();   //  获取当前时间
//txaTalk.append(new Date(m));
//txaTalk.append(str);
// Data time = new java.util.Date(m);
//System.out.println("当前时间 :"+new Date(m));
//long m =System.currentTimeMillis();  // 获取当前时间
//System.out.println("当前时间 :"+new Date(m));
//

//txaTalk.append("\n");
if(talkWords.length()==0){
JOptionPane.showMessageDialog(null, "输入信息不能为空 !", "警告", JOptionPane.WARNING_MESSAGE);
}
txtSend.setText("");   //发送完成后,制空

}
});
}
return btnSend;
}
// private static String getDateShort(){
// Date now = new Date();
// DateFormat time = DateFormat.getDateTime
// }

/**
 * This method initializes btnSmile
 * 
 * @return javax.swing.JButton
 */
private JButton getBtnSmile() {
if (btnSmile == null) {
btnSmile = new JButton();
btnSmile.setIcon(new ImageIcon("E:/90.png"));
btnSmile.setPreferredSize(new Dimension(20, 20));
btnSmile.addActionListener(new java.awt.event.ActionListener() {   
public void actionPerformed(java.awt.event.ActionEvent e) {    
JOptionPane.showMessageDialog(null, "对不起,该功能未实现 !", "消息", JOptionPane.INFORMATION_MESSAGE);
}

});
}
return btnSmile;
}

/**
 * This method initializes slpScroll
 * 
 * @return javax.swing.JScrollPane
 */
private JScrollPane getSlpScroll() {
if (slpScroll == null) {
slpScroll = new JScrollPane();
slpScroll.setViewportView(getTxaTalk());
}
return slpScroll;
}

/**
 * This method initializes txaTalk
 * 
 * @return javax.swing.JTextArea
 */
private JTextArea getTxaTalk() {
if (txaTalk == null) {
txaTalk = new JTextArea();
//txaTalk.setVisible(false);
txaTalk.setEditable(false);
//System.out.println(new Date());
}
return txaTalk;
}

/**
 * @param args
 */
public static void main(String[] args) {
// TODO 自动生成方法存根
SwingUtilities.invokeLater(new Runnable() {
public void run() {
UserFrm thisClass = new UserFrm();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}

/**
 * This is the default constructor
 */
public UserFrm() {
super();
initialize();
}

/**
 * This method initializes this
 * 
 * @return void
 */
private void centerShow() {
        Dimension screenSize = Toolkit.getDefaultToolkit( ).getScreenSize( );
        Dimension frameSize = this.getSize( );
        if (frameSize.height > screenSize.height) {
            frameSize.height = screenSize.height;
        }
        if (frameSize.width > screenSize.width) {
            frameSize.width = screenSize.width;
        }
        this.setLocation((screenSize.width - frameSize.width) / 2,
                                    (screenSize.height - frameSize.height) / 2);

}
private void initialize() {
this.setComponentOrientation(ComponentOrientation.UNKNOWN);
this.setMaximumSize(new Dimension(21489, 2147483647));
this.setBounds(new Rectangle(10, 10, 650, 427));
this.setIconImage(Toolkit.getDefaultToolkit().getImage("E:/qq.jpg"));
this.setBackground(new Color(99, 41, 0));
this.setEnabled(true);
this.setResizable(false);
this.setForeground(Color.red);
this.setContentPane(getJContentPane());
this.setTitle("QQ聊天室");
this.centerShow();
this.setVisible(false);
}

/**
 * This method initializes jContentPane
 * 
 * @return javax.swing.JPanel
 */
private JPanel getJContentPane() {
if (jContentPane == null) {
lalOnline = new JLabel();
lalOnline.setText("当前在线人数: 0 ");
lalOnline.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED);
lalOnline.setBackground(Color.black);
lalOnline.setPreferredSize(new Dimension(145, 34));
lalOnline.setFont(new Font("\u5b8b\u4f53", Font.BOLD, 12));
//lalOnline.setIcon(new ImageIcon("F:/friend_info.gif"));
lalOnline.setVerticalAlignment(SwingConstants.CENTER);
lalOnline.setVerticalTextPosition(SwingConstants.BOTTOM);
lalOnline.setForeground(new Color(255, 13, 21));
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.setForeground(new Color(51, 163, 51));
jContentPane.add(lalOnline, BorderLayout.EAST);
jContentPane.add(getPnlsend(), BorderLayout.SOUTH);
jContentPane.add(getSlpScroll(), BorderLayout.CENTER);
}
return jContentPane;
}

}  //  @jve:decl-index=0:visual-constraint="12,-79"
java聊天室 qq聊天室 怎样连接到服务端 --------------------编程问答-------------------- 贴一堆代码什么都不说,懒得看 --------------------编程问答-------------------- 就是在这些代码中写接入服务器的程序。应该怎么写,真的不会,您有时间给我看看呗。 --------------------编程问答--------------------
引用 1 楼 huxiweng 的回复:
贴一堆代码什么都不说,懒得看
--------------------编程问答-------------------- 参考下吧:http://blog.csdn.net/withiter/article/details/7734062
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,