




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010-06-23 20:24:11 TiBackimport .*;import java.io.*;import java.sql.*;import java.util.*;public class QQServer public static void main(String args) try /用户名同步(14)HashMap hm = new HashMap() ;/ 服务器在8000端口监听(1)ServerSocket ss = new ServerSocket(8000);while (true) System.out.println(服务器正在8000端口监听.);Socket s = ss.accept();MyService t = new MyService();t.setSocket(s);t.setHashMap(hm) ;t.start(); catch (Exception e) / 支持多用户登陆(13)class MyService extends Thread private Socket s;private HashMap hm ;public void setHashMap(HashMap hm) this.hm = hm ;public void setSocket(Socket s) this.s = s;public void run() try / 接收客户端发送来的用户名和密码(2)InputStream is = s.getInputStream();InputStreamReader isr = new InputStreamReader(is);BufferedReader br = new BufferedReader(isr);String uandp = br.readLine();/ 拆分(4)String u = uandp.split(%)0;String p = uandp.split(%)1;/ 到数据库中验证(5)Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);Connection cn = DriverManager.getConnection(jdbc:sqlserver:/:1433;databasename=wy, sa,123);PreparedStatement ps = cn.prepareStatement(select * from username where username=? and password=?);ps.setString(1, u);ps.setString(2, p);ResultSet rs = ps.executeQuery();/ 发送确认信息回客户端(7)OutputStream os = s.getOutputStream();OutputStreamWriter osw = new OutputStreamWriter(os);PrintWriter pw = new PrintWriter(osw, true);if (rs.next() pw.println(ok);Thread.sleep(10) ;/将自己的名字发送给其他人(17)for(Socket ts : hm.values()OutputStream tos = ts.getOutputStream() ;OutputStreamWriter tosw = new OutputStreamWriter(tos) ;PrintWriter tpw = new PrintWriter(tosw , true) ;tpw.println(user%+u) ;/将其他人的名字发送给自己(18)for(String tu : hm.keySet()pw.println(user%+tu) ;/将用户名和Socket存入HashMap(15)hm.put(u, s) ;/ 接收客户端发送来的信息(11)while (true) String message = br.readLine();/判断是否退出if(message.equals(exit)for(Socket ts : hm.values()OutputStream tos = ts.getOutputStream() ;OutputStreamWriter tosw = new OutputStreamWriter(tos) ;PrintWriter tpw = new PrintWriter(tosw , true) ;tpw.println(exit%+u) ;hm.remove(u) ;return ;String to = message.split(%)0 ;String mess = message.split(%)1 ;Socket ts = hm.get(to) ;OutputStream tos = ts.getOutputStream() ;OutputStreamWriter tosw = new OutputStreamWriter(tos) ;PrintWriter tpw = new PrintWriter(tosw , true) ;tpw.println(mess%+mess) ; else pw.println(err); catch (Exception e) 2010-06-23 20:24:37 TiBackimport java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import .*;import java.io.*;import javax.swing.*;public class QQLogin extends JFrame implements ActionListener JTextField txtUser = new JTextField();JPasswordField txtPass = new JPasswordField();public QQLogin() / 设置窗体属性this.setSize(250, 125);this.setTitle(QQ登陆);this.setResizable(false);/ new一大堆组件JLabel labUser = new JLabel(用户名);JLabel labPass = new JLabel(密码);JButton btnLogin = new JButton(登陆);JButton btnReg = new JButton(注册);JButton btnCancel = new JButton(取消);/ 注册事件btnLogin.addActionListener(this);btnReg.addActionListener(this);btnCancel.addActionListener(this);/ 布置输入面板JPanel panInput = new JPanel();panInput.setLayout(new GridLayout(2, 2);panInput.add(labUser);panInput.add(txtUser);panInput.add(labPass);panInput.add(txtPass);/ 布置按钮面板JPanel panButton = new JPanel();panButton.setLayout(new FlowLayout();panButton.add(btnLogin);panButton.add(btnReg);panButton.add(btnCancel);/ 布置窗体this.setLayout(new BorderLayout();this.add(panInput, BorderLayout.CENTER);this.add(panButton, BorderLayout.SOUTH);public static void main(String args) JFrame.setDefaultLookAndFeelDecorated(true);QQLogin w = new QQLogin();w.setVisible(true);Overridepublic void actionPerformed(ActionEvent e) if (e.getActionCommand().equals(登陆) String u = txtUser.getText();String p = txtPass.getText();try/将用户名和密码发送到服务器(3)Socket s = new Socket(,8000) ;OutputStream os = s.getOutputStream() ;OutputStreamWriter osw = new OutputStreamWriter(os) ;PrintWriter pw = new PrintWriter(osw , true) ;pw.println(u+%+p) ;/接收服务器发送回来的确认信息(6)InputStream is = s.getInputStream() ;InputStreamReader isr = new InputStreamReader(is) ;BufferedReader br = new BufferedReader(isr) ;String yorn = br.readLine() ;/显示主窗体(8)if(yorn.equals(ok)QQMain w = new QQMa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航空航天复合材料 课件知识点1 聚合物基复合材料概论
- 山东医专入学考试试题及答案
- 肿瘤防治与精准医学前沿进展
- 自我意识心理健康教育
- 秩序队员法律法规培训
- 呼吸内科门诊病历
- 中班艺术活动《冬天里的活动》
- 园区招商培训计划
- 2025年中国女性生物纤维素面膜行业市场全景分析及前景机遇研判报告
- 大班健康教案:冬季护肤品使用指南
- 2025至2030年中国玉米淀粉行业市场现状分析及前景战略研判报告
- 2025年江苏高考政治试卷真题解读及答案讲解课件
- 2025上半年山东高速集团有限公司社会招聘211人笔试参考题库附带答案详解析集合
- 辽宁省点石联考2024-2025学年高二下学期6月份联合考试化学试题(含答案)
- 2025高考全国一卷语文真题
- DTLDTC带式输送机工艺流程图
- 荧光绿送货单样本excel模板
- 有机化学概述
- 复盛零件手册
- 内外墙抹灰施工承包合同
- 《急救药品》PPT课件.ppt
评论
0/150
提交评论