亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? clientwindow.java

?? QQ聊天工具的源代碼
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*
 * clientWindow.java
 *
 * Created on 2007年12月20日, 下午8:35
 */

/**
 *
 * @author  Admin
 *用戶會(huì)話窗口; 用戶發(fā)送和接受消息由不同線程完成;用戶講在一個(gè)特定的端口接受消息,此端口號(hào)每次登錄都會(huì)不同,但在一次登錄成功急以后的會(huì)話中相同.
 * 客戶端會(huì)將此端口號(hào)發(fā)送至服務(wù)器.服務(wù)器將會(huì)把用戶名&端口號(hào)記錄下來;將發(fā)給該用戶的消息,發(fā)往該端口;因此服務(wù)器與客戶端的發(fā)送接受不在同一個(gè)socket,
 * 而是在需要發(fā)送信息時(shí)臨時(shí)創(chuàng)建一個(gè)socket;這樣處理的目的是提高客戶端的并發(fā)度,而服務(wù)器可以采用相同的方法處理消息;
 */
import java.io.*;
import java.net.*;
import java.lang.*;
import javax.swing.*;
import java.awt.Container.*;
import java.net.BindException;
public class clientWindow extends javax.swing.JFrame {
	/** Creates new form clientWindow */
	public int PORT=2003;						//默認(rèn)偵聽端口為2003,此端口可能不可用,被修改;
	public String rckey=null;					//session key;在登錄時(shí)與服務(wù)器協(xié)商好的,作為參數(shù)傳遞到會(huì)話窗口;
	public String filepath=null;					//傳輸文件時(shí)選擇的文件路徑
	public clientWindow(String un, String ip, String key) {	
		initComponents();
		usernametextLabel.setText(un);
		IPtextLabel.setText(ip);
		rckey = key;
	}
	public void log(String log)					//log函數(shù);在登錄,登出時(shí)調(diào)用;發(fā)送合法的登錄登出消息格式,正常結(jié)束連接;
	{
		String info = "";
		if(log.equals("on"))
		{	
			info = "%"+usernametextLabel.getText()+"%"+PORT;
		}else if(log.equals("off"))
		{
			info = "logoff";
		}else
		{
			JOptionPane.showMessageDialog(null,"錯(cuò)誤的登錄參數(shù)", "error", JOptionPane.ERROR_MESSAGE);
		}
		String message = EncryptAndDecrypt.encryption(info, rckey, "RC4");
		try{

			Socket skt = new Socket("127.0.0.1",2500);
			DataOutputStream dos = new DataOutputStream(skt.getOutputStream());
			dos.writeBytes(message+"&"+usernametextLabel.getText());
			dos.close();
			skt.close();
		}catch(UnknownHostException unex)
		{
			System.err.println(unex);
		}catch(IOException ioex)
		{
			System.err.println(ioex);
		}
	}
	class Listen extends Thread					//接受消息的線程;此線程偵聽尋找一個(gè)可用端口并偵聽該端口
	{
		private ServerSocket sevskt = null;
		public Listen()
		{
			mark:	while(true)				//循環(huán)測(cè)試端口是否可用,直到發(fā)現(xiàn)可用端口,基礎(chǔ)端口為默認(rèn)的2003
			{
				try{
					sevskt = new ServerSocket(PORT);
					break;
				}catch(java.net.BindException e)
				{
					PORT++;
					continue mark;
				}catch(IOException ioex)
				{
					System.err.println(ioex);
				}
			}
			log("on");
		}
		public void run()
		{
			
			try{
				while(true)
				{
					Socket skt = sevskt.accept();
					BufferedReader binReader = new BufferedReader(new InputStreamReader(skt.getInputStream()));
					String message = binReader.readLine();
					message = EncryptAndDecrypt.decryption(message, rckey, "RC4");
					
					if(message.equals("file"))
					{
						JOptionPane.showMessageDialog(null,"請(qǐng)求傳輸文件", "message", JOptionPane.INFORMATION_MESSAGE);
						filechooser frame1 = new filechooser(null, rckey);
						frame1.setTitle("檔案選擇對(duì)話方塊");
						frame1.setSize(550,350);
						frame1.setVisible(true);
					}else if(message.endsWith("&"))
					{
						String users[] = message.split("&");
						for(int i=0; i<users.length&&users[i]!=null; i++)
						{
							activeuserTab.setValueAt(users[i],i,0);
						}
					}else if(message.contains(":")){
						int pos = message.indexOf(":");
						String head = message.substring(0, pos);
						String load = message.substring(pos+1, message.length());
						messageTA.append(head + ":\n" + load+"\n");
					}else{
					}
					binReader.close();
					skt.close();
				}
			}catch(UnknownHostException unex)
			{
				System.err.println(unex);
			}catch(IOException ioex)
			{
				System.err.println(ioex);
			}
		}
	}
	/** This method is called from within the constructor to
	 * initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is
	 * always regenerated by the Form Editor.
	 */
        // <editor-fold defaultstate="collapsed" desc=" 生成的代碼 ">//GEN-BEGIN:initComponents
        private void initComponents() {
                jScrollPane4 = new javax.swing.JScrollPane();
                jTable1 = new javax.swing.JTable();
                jScrollPane3 = new javax.swing.JScrollPane();
                jTable2 = new javax.swing.JTable();
                jScrollPane1 = new javax.swing.JScrollPane();
                messageTA = new javax.swing.JTextArea();
                jScrollPane2 = new javax.swing.JScrollPane();
                sendtextTA = new javax.swing.JTextArea();
                sendBtn = new javax.swing.JButton();
                privateBtn = new javax.swing.JButton();
                usernameLabel = new javax.swing.JLabel();
                usernametextLabel = new javax.swing.JLabel();
                IPLabel = new javax.swing.JLabel();
                IPtextLabel = new javax.swing.JLabel();
                jScrollPane5 = new javax.swing.JScrollPane();
                activeuserTab = new javax.swing.JTable();
                transmitBtn = new javax.swing.JButton();
                logoffBtn = new javax.swing.JButton();

                jTable1.setModel(new javax.swing.table.DefaultTableModel(
                        new Object [][] {
                                {null, null, null, null},
                                {null, null, null, null},
                                {null, null, null, null},
                                {null, null, null, null}
                        },
                        new String [] {
                                "Title 1", "Title 2", "Title 3", "Title 4"
                        }
                ));
                jScrollPane4.setViewportView(jTable1);

                jTable2.setModel(new javax.swing.table.DefaultTableModel(
                        new Object [][] {
                                {null, null, null, null},
                                {null, null, null, null},
                                {null, null, null, null},
                                {null, null, null, null}
                        },
                        new String [] {
                                "Title 1", "Title 2", "Title 3", "Title 4"
                        }
                ));
                jScrollPane3.setViewportView(jTable2);

                setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
                messageTA.setColumns(20);
                messageTA.setEditable(false);
                messageTA.setRows(5);
                messageTA.addAncestorListener(new javax.swing.event.AncestorListener() {
                        public void ancestorMoved(javax.swing.event.AncestorEvent evt) {
                        }
                        public void ancestorAdded(javax.swing.event.AncestorEvent evt) {
                                messageTAAncestorAdded(evt);
                        }
                        public void ancestorRemoved(javax.swing.event.AncestorEvent evt) {
                        }
                });

                jScrollPane1.setViewportView(messageTA);

                sendtextTA.setColumns(20);
                sendtextTA.setRows(5);
                jScrollPane2.setViewportView(sendtextTA);

                sendBtn.setText("send");
                sendBtn.addActionListener(new java.awt.event.ActionListener() {
                        public void actionPerformed(java.awt.event.ActionEvent evt) {
                                sendBtnActionPerformed(evt);
                        }
                });

                privateBtn.setText("private");
                privateBtn.addActionListener(new java.awt.event.ActionListener() {
                        public void actionPerformed(java.awt.event.ActionEvent evt) {
                                privateBtnActionPerformed(evt);
                        }
                });

                usernameLabel.setText("Username");

                usernametextLabel.setText("111");

                IPLabel.setText("IP address");

                IPtextLabel.setText("122");

                activeuserTab.setModel(new javax.swing.table.DefaultTableModel(
                        new Object [][] {
                                {null},
                                {null},
                                {null},
                                {null},
                                {null},
                                {null},
                                {null},
                                {null}
                        },
                        new String [] {
                                "User online"
                        }
                ) {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩av一区二区三区在线播放| 91老师片黄在线观看| 亚洲激情图片一区| 久久婷婷国产综合精品青草| 欧洲国内综合视频| 成人一区二区三区| 久久国产精品无码网站| 亚洲综合一区二区| 国产精品第13页| 久久精品亚洲一区二区三区浴池| 欧美福利视频导航| 欧美亚洲动漫制服丝袜| av资源站一区| 高清国产一区二区三区| 精品一区二区三区免费播放| 图片区日韩欧美亚洲| 夜色激情一区二区| 亚洲欧美aⅴ...| 国产精品素人一区二区| 国产亚洲一区二区三区在线观看| 91精品国产福利| 在线成人高清不卡| 欧美群妇大交群中文字幕| 在线视频综合导航| 91成人在线观看喷潮| caoporen国产精品视频| 成人免费视频一区二区| 粉嫩13p一区二区三区| 国产精品一品二品| 国产传媒一区在线| 国产精品一区在线观看乱码| 国产一区二区三区美女| 国产自产视频一区二区三区| 国内精品国产三级国产a久久 | 国产成人福利片| 国产伦精品一区二区三区视频青涩| 久久se这里有精品| 精品一区二区在线看| 日本欧美肥老太交大片| 久久精品国产色蜜蜜麻豆| 免费在线一区观看| 极品少妇xxxx偷拍精品少妇| 精品一区二区三区在线播放| 久久电影国产免费久久电影| 精彩视频一区二区| 风间由美一区二区三区在线观看 | 色综合天天在线| 欧美亚一区二区| 制服丝袜亚洲色图| 精品剧情在线观看| 国产清纯白嫩初高生在线观看91 | 国产91在线观看丝袜| 成人美女视频在线观看18| www.成人在线| 欧美性猛交xxxxxx富婆| 7777精品伊人久久久大香线蕉最新版| 3d动漫精品啪啪| 精品久久久久香蕉网| 久久一区二区三区国产精品| 国产精品区一区二区三区| 亚洲欧美日韩国产手机在线| 亚洲成人黄色小说| 国产综合一区二区| 97国产一区二区| 91麻豆精品国产91久久久使用方法| 日韩欧美国产麻豆| 中文字幕国产一区二区| 亚洲综合视频网| 久久精品国产一区二区三区免费看 | 国产传媒日韩欧美成人| 91在线精品一区二区| 欧美猛男gaygay网站| 欧美精品一区二区在线观看| 亚洲天堂a在线| 天天综合色天天综合色h| 国产不卡在线视频| 欧美色图片你懂的| 国产日韩av一区二区| 亚洲在线视频网站| 国产一区二区精品久久99| 色视频成人在线观看免| 精品区一区二区| 亚洲女爱视频在线| 国产在线精品不卡| 色乱码一区二区三区88| 26uuuu精品一区二区| 亚洲最新视频在线播放| 国产成人啪午夜精品网站男同| 日本道在线观看一区二区| 久久久久久免费毛片精品| 亚洲mv在线观看| a级精品国产片在线观看| 精品少妇一区二区三区在线播放| 亚洲视频一区二区免费在线观看| 精品一区二区免费视频| 欧美在线影院一区二区| 国产亚洲综合色| 免费高清在线一区| 欧美亚洲动漫精品| 国产精品不卡一区| 国内外成人在线| 8x福利精品第一导航| 亚洲精品videosex极品| 成人免费毛片a| 久久精品亚洲一区二区三区浴池| 日本伊人色综合网| 在线观看网站黄不卡| 亚洲欧洲成人精品av97| 国产成人高清视频| www久久精品| 日本一区中文字幕| 欧美精品在线一区二区| 夜夜揉揉日日人人青青一国产精品| 国产电影精品久久禁18| 欧美大片在线观看| 青青草视频一区| 69堂国产成人免费视频| 亚洲国产精品麻豆| 欧美专区在线观看一区| 亚洲视频一区二区在线观看| 成人一区二区三区视频在线观看| 久久精品一区二区三区av| 韩国三级在线一区| 久久婷婷成人综合色| 国产一区二区电影| 欧美精品一区二区久久婷婷| 久久精品99国产国产精| 日韩一卡二卡三卡四卡| 免费精品视频最新在线| 欧美v日韩v国产v| 黄色资源网久久资源365| 久久这里只有精品首页| 国产精品18久久久久久久久| 久久久国产午夜精品| 成人一区二区三区视频在线观看| 日本一区二区高清| 99热99精品| 亚洲精品网站在线观看| 在线观看免费成人| 午夜精品福利一区二区三区av| 欧美日本高清视频在线观看| 天天色综合天天| 精品久久久三级丝袜| 国产成人午夜高潮毛片| 日韩伦理电影网| 欧美色图在线观看| 日韩av不卡一区二区| 欧美成人精品1314www| 国产精品资源在线看| 国产精品久久久久永久免费观看| 91在线国内视频| 亚洲成a人在线观看| 精品国一区二区三区| 成人一区在线看| 一区二区三区国产精品| 欧美一区二区三区播放老司机| 久久99蜜桃精品| 国产精品视频免费看| 欧日韩精品视频| 韩国av一区二区三区四区| 国产精品女上位| 欧美日韩一区久久| 国产一区二区在线观看视频| 中文字幕一区二区三区色视频| 欧美性色黄大片手机版| 理论电影国产精品| 欧美激情一区三区| 欧美日本在线视频| 国产电影一区在线| 亚洲午夜三级在线| 久久人人爽爽爽人久久久| 91视频一区二区三区| 日韩成人精品视频| 亚洲欧美一区二区在线观看| 欧美电影在哪看比较好| 成人理论电影网| 性久久久久久久久久久久 | 亚洲一区二区三区国产| 久久亚区不卡日本| 色偷偷一区二区三区| 国产自产v一区二区三区c| 一区二区三区国产精华| 久久精品在线免费观看| 精品视频一区三区九区| 国产成人亚洲精品狼色在线| 香蕉久久一区二区不卡无毒影院| 国产女人水真多18毛片18精品视频 | 夜夜操天天操亚洲| 国产情人综合久久777777| 制服丝袜亚洲色图| 91免费在线播放| 国产成人av在线影院| 蜜臀av性久久久久蜜臀aⅴ| 亚洲黄一区二区三区| 中文字幕精品—区二区四季| 欧美成人video| 7777精品伊人久久久大香线蕉 | 亚洲一区二区三区视频在线| 欧美精品一区二区三区久久久 | jiyouzz国产精品久久|