📄 mainwin.java
字号:
int friendsendport; friendname=in.readLine(); if(!friendname.equals("over")){ friendicqno=in.readLine(); friendstatus=in.readLine(); friendip=in.readLine(); friendsendport=Integer.parseInt(in.readLine()); friendinfo=in.readLine(); friendpic=in.readLine(); friendsex=in.readLine(); friendemail=in.readLine(); friendplace=in.readLine(); friendinfoModel.addFriendInfo(friendicqno,friendname,friendstatus,friendip, friendinfo,friendpic,friendsex,friendemail,friendplace, friendsendport); friendname=in.readLine(); } friendinfoModel.setMyName(myname);//update view socket.close(); } catch(IOException e1){} }//GEN-LAST:event_jAddFriendButtonActionPerformed private void jDeleteButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jDeleteButtonActionPerformed int index=list.getSelectedIndex(); if(index==-1)return; String friendjicq=friendinfoModel.getFriendIcqno().get(index).toString(); if(JOptionPane.showConfirmDialog(this,"确实要删除好友"+friendjicq+"么?", "删除好友确认",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ try{ Socket socket=new Socket(InetAddress.getByName(server),serport);//连接服务器 BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out=new PrintWriter(new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true); out.println("delfriend"); out.println(friendjicq); out.println(myjicq); friendinfoModel.deleteFriendInfo(index); socket.close(); } catch(IOException e1){} } }//GEN-LAST:event_jDeleteButtonActionPerformed private void jFindButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jFindButtonActionPerformed// TODO add your handling code here: try{ Socket socket=new Socket(InetAddress.getByName(server),serport);//连接服务器 BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out=new PrintWriter(new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true); String friendname=" "; String friendicqno,friendstatus,friendip,friendinfo,friendpic,friendsex,friendemail,friendplace; int friendsendport; out.println("find"); out.println(myjicq); findfriendinfoModel.clearFriendInfo(); friendname=in.readLine(); while(!friendname.equals("over")){ friendicqno=in.readLine(); friendstatus=in.readLine(); friendip=in.readLine(); friendsendport=Integer.parseInt(in.readLine()); friendinfo=in.readLine(); friendpic=in.readLine(); friendsex=in.readLine(); friendemail=in.readLine(); friendplace=in.readLine(); findfriendinfoModel.addFriendInfo(friendicqno,friendname,friendstatus,friendip, friendinfo,friendpic,friendsex,friendemail,friendplace,friendsendport); friendname=in.readLine(); } findfriendinfoModel.setMyName(myname); socket.close(); } catch(IOException e){}; jFindFriendDialog.setBounds(300, 300, 300, 200); jFindFriendDialog.setVisible(true); }//GEN-LAST:event_jFindButtonActionPerformed private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing try{ Socket socket=new Socket(InetAddress.getByName(server),serport);//连接服务器 BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out=new PrintWriter(new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true); //告诉服务器我下线了 out.println("logout"); out.println(myjicq); if(in.readLine().trim().equals("ok")){ endthread=true; if(cfIsCreated)cf.dispose(); this.dispose(); ms.close(); //发组播“我下线了” this.offLine(); try{socket.close();} catch(IOException ioe){System.err.println(ioe);}; } } catch(IOException e){System.err.println(e);}; }//GEN-LAST:event_formWindowClosing public void ConnectServer(int myid){ try{ Socket socket=new Socket(InetAddress.getByName(server),serport);//连接服务器 BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out=new PrintWriter(new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true); //读取好友信息 out.println("friend"); out.println(myid); friendinfoModel.clearFriendInfo(); friendinfoModel.setMyUdpPort(sendport); String friendname=" "; String friendicqno,friendstatus,friendip,friendinfo,friendpic,friendsex,friendemail,friendplace; int friendsendport; friendname=in.readLine(); while(!friendname.equals("over")){ friendicqno=in.readLine(); friendstatus=in.readLine(); friendip=in.readLine(); friendsendport=Integer.parseInt(in.readLine()); friendinfo=in.readLine(); friendpic=in.readLine(); friendsex=in.readLine(); friendemail=in.readLine(); friendplace=in.readLine(); friendinfoModel.addFriendInfo(friendicqno,friendname,friendstatus,friendip, friendinfo,friendpic,friendsex,friendemail,friendplace, friendsendport); friendname=in.readLine(); } friendinfoModel.setMyName(myname); socket.close(); } catch(IOException e1){} }//connect to server //无限监听好友上线,下线消息 public void run(){ byte array[]=new byte[512]; while(!endthread){ try{ for(int x=0;x<512;x++)array[x]=' '; ms = new MulticastSocket(multiport); ms.joinGroup(group); //创建数据报 receivePacket=new DatagramPacket(array,array.length); ms.receive(receivePacket); byte[] data=receivePacket.getData(); String received=new String(data,0,data.length).trim(); String infofromip=receivePacket.getAddress().getHostAddress().toString().trim(); thread.sleep(1000); if(received.substring(0,6).equals("online")){//如果有好友上线就变彩色 this.ConnectServer(myjicq); } else if(received.substring(0,7).equals("offline")){//如果有好友下线就变灰色 this.ConnectServer(myjicq); } } catch(IOException ioe){ioe.printStackTrace();} catch(InterruptedException ie){ie.printStackTrace();} } }//run end public void onLine(){ try{ ms = new MulticastSocket(multiport); ms.joinGroup(group); byte[] data="online".getBytes(); DatagramPacket dp=new DatagramPacket(data,data.length,group,multiport); ms.send(dp,ttl); ms.leaveGroup(group); ms.close(); } catch(SocketException e){System.err.println(e);} catch(IOException e){System.err.println(e);} } public void offLine(){ try{ ms = new MulticastSocket(multiport); ms.joinGroup(group); byte[] data="offline".getBytes(); DatagramPacket dp=new DatagramPacket(data,data.length,group,multiport); ms.send(dp,ttl); ms.leaveGroup(group); ms.close(); } catch(SocketException e){System.err.println(e);} catch(IOException e){System.err.println(e);} } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jAddFriendButton; private javax.swing.JButton jCancelButton; private javax.swing.JButton jDeleteButton; private javax.swing.JButton jFindButton; private javax.swing.JDialog jFindFriendDialog; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jMyJicq; private javax.swing.JLabel jMyStatus; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; // End of variables declaration//GEN-END:variables }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -