java终极大作业报告内容摘要:

erformed(ActionEvent arg0) { new jp()。 RectD rd = new RectD()。 GraphicsDevice gd = () .getDefaultScreenDevice()。 (rd)。 } })。 } public synchronized boolean closeConnection() { try { Java语言程序设计(报告) 19 sendMessage(CLOSE)。 // 发送断开连接命令给服务器 ()。 // 停止接受消息线程 // 释放资源 if (reader != null) { ()。 } if (writer != null) { ()。 } if (socket != null) { ()。 } isConnected = false。 return true。 } catch (IOException e1) { ()。 isConnected = true。 return false。 } } public void sendMessage(String message) { (message)。 ()。 } public void send() { if (!isConnected) { Java语言程序设计(报告) 20 (null, 还没有连接服务器,无法发送消息。 , 错误 , )。 return。 } String message = ().trim()。 if (message == null || ()) { (null, 消息不能为空。 , 错误 , )。 return。 } sendMessage(getTitle() + @ + ALL + @ + message)。 (null)。 } public static void main(String args[]){ new khd()。 } class MessageThread extends Thread { private BufferedReader reader。 private JTextArea textArea。 // 接收消息线程的构造方法 public MessageThread(BufferedReader reader, JTextArea textArea) { = reader。 Java语言程序设计(报告) 21 = textArea。 } // 被动的关闭连接 public synchronized void closeCon() throws Exception { // 清空用户列表 // ()。 // 被动的关闭连接释放资源 if (reader != null) { ()。 } if (writer != null) { ()。 } if (socket != null) { ()。 } isConnected = false。 // 修改状态为断开 } public void run() { String message =。 while (true) { try { message = ()。 StringTokenizer stringTokenizer = new Java语言程序设计(报告) 22 StringTokenizer( message, /@)。 String mand = ()。 // 命令 if ((CLOSE))// 服务器已关闭命令 { (服务器已关闭 !\n)。 closeCon()。 // 被动的关闭连接 return。 // 结束线程 } else if ((ADD)) {// 有用户上线更新在线列表 String username =。 String userIp =。 if ((username = ()) != null amp。 amp。 (userIp = ()) != null) { User user = new User(username, userIp)。 (username, user)。 //(username)。 } } else if ((DELETE)) {// 有用户下线更新在线列表 String username = ()。 Java语言程序设计(报告) 23 User user = (User) (username)。 (user)。 } else if ((USERLIST)) {// 加载在线用户列表 int size = Integer .parseInt(en())。 String username = null。 String userIp = null。 for (int i = 0。 i size。 i++) { username = ()。 userIp = ()。 User user = new User(username, userIp)。 (username, user)。 //(username)。 } } else if ((MAX)) {// 人数已达上限 (() + () + \n)。 closeCon()。 // 被动的关闭连接 Java语言程序设计(报告) 24 (null, 服务器缓冲区已满。 , 错误 , )。 return。 // 结束线程 } else {// 普通消息 (message + \n)。 } } catch (IOException e) { ()。 } catch (Exception e) { ()。 } } } } public boolean connectServer(int port, String hostIp, String name) { // 连接服务器 try { socket = new Socket(hostIp, port)。 // 根据端口号和服务器 ip 建立连接 socket2=new Socket(hostIp,port)。 writer = new PrintWriter(())。 reader = new BufferedReader(new InputStreamReader(socket .getInputStream()))。 Java语言程序设计(报告) 25 // 发送客户端用户基本信息 (用户名和 ip 地址 ) sendMessage(name + @ + ().toString())。 // 开启接收消息的线程 messageThread = new MessageThread(reader, jt1)。 ()。 new wjsc(socket2).start()。 //new Input(socket2).start()。 isConnected = true。 // 已经连接上了 return true。 } catch (Excepti。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。