freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java網(wǎng)絡(luò)聊天室課程設(shè)計(jì)報(bào)告(內(nèi)附有代碼)(編輯修改稿)

2025-08-25 09:58 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 )。 (txtIP)。 (lblPort)。 (txtPort)。 (5, 5, 100, 400)。 (110, 5, 100, 30)。 (110, 35, 400, 370)。 (200, 410, 120, 30)。 (320, 410, 120, 30)。 (pnlServerInfo)。 (lblLog)。 (taLog)。 (btnStop)。 (btnSaveLog)。 // ===========在線用戶面板 ==================== pnlUser = new JPanel()。 (null)。 lblMessage = new JLabel([用戶消息 ])。 taMessage = new TextArea(20, 20)。 lblNotice = new JLabel(通知: )。 txtNotice = new JTextField(20)。 btnSend = new JButton(發(fā)送 (S))。 (true)。 (new ActionListener() { public void actionPerformed(ActionEvent arg0) { serverMessage()。 } })。 lblUserCount = new JLabel(在線總?cè)藬?shù) 0 人 )。 btnKick = new JButton(踢人 (K))。 (new ActionListener() { public void actionPerformed(ActionEvent arg0) { tiRen()。 } })。 lblUser = new JLabel([在線用戶列表 ])。 lstUser = new JList()。 (17)。 (180)。//指定的 固定單元格寬度值,而不是從列表元素計(jì)算而來(lái)的寬度值 (18)。 spUser = new JScrollPane()。 (R_ALWAYS)。 ().setView(lstUser)。 (5, 5, 100, 25)。 (5, 35, 300, 360)。 (310, 5, 100, 25)。 (310, 35, 220, 360)。 (5, 410, 40, 25)。 (50, 410, 160, 25)。 (210, 410, 80, 25)。 (320, 410, 100, 25)。 (440, 410, 80, 25)。 (lblMessage)。 (taMessage)。 (lblUser)。 (spUser)。 list = new JList()。 (new String[] { })。 (list)。 (lblNotice)。 (txtNotice)。 (btnSend)。 (lblUserCount)。 (btnKick)。 // ============主標(biāo)簽面板 ======================== tpServer = new JTabbedPane()。 (服務(wù)器管理 , pnlServer)。 (用戶信息管理 , pnlUser)。 ().add(tpServer)。 setVisible(true)。 } protected void serverMessage() { // TODO 自動(dòng)生成方法存根 = ()。 ()。 } protected void closeServer() { // TODO 自動(dòng)生成方法存根 ()。 // } protected void saveLog() { // TODO 自動(dòng)生成方法存根 try { FileOutputStream fileoutput = new FileOutputStream(, true)。 String temp = ()。 (())。 ()。 (null, 記錄保存在 )。 } catch (Exception e) { (e)。 } } protected void tiRen() { // TODO 自動(dòng)生成方法存根 ti = ().toString()。 log(Ti:+ti)。 } private void log(String string) { // TODO 自動(dòng)生成方法存根 String newta = ()。 newta += (\n+string)。 (newta)。 } public void actionPerformed(ActionEvent evt) { } public static void main(String args[]) { new ServerFrame()。 } } public class Connection extends Thread { /** * 與客戶端通訊 Socket */ private Socket Client。 /** * 在線用戶列表 */ private VectorCustomer userOnline。 /** * 聊天信息 */ private VectorChat userChat。 /** * 從客 戶到服務(wù)器 輸入流 */ private ObjectInputStream fromClient。 /** * 傳到客戶端 打印流 */ private PrintStream toClient。 /** * 注冊(cè)用戶列表 */ private static Vector vList = new Vector()。 /** * 臨時(shí)對(duì)象 */ private Object obj。 /** * 服務(wù)器日志窗體 */ private ServerFrame sFrame。 @SuppressWarnings(unchecked) /** * 創(chuàng)建與客戶端通訊 */ public Connection(ServerFrame frame, Socket client, Vector u, Vector c) { Client = client。 userOnline = u。 userChat = c。 sFrame = frame。 try { // 發(fā)生雙向通信 // 檢索客戶輸入 fromClient = new ObjectInputStream(())。 // 服務(wù)器寫到客戶 toClient = new PrintStream(())。 } catch (IOException e) { try { ()。 } catch (IOException e1) { (不能建 立流 + e1)。 return。 } } ()。 } /** * 處理與客戶端的通訊線程 */ public void run() { try {// obj是 Object類的對(duì)象 obj = (Object) ()。 if (().getName().equals(Customer)) { // serverLogin()。 serverLoginDB()。 } if (().getName().equals(Register_Customer)) { // serverRegiste()。 serverRegisteDB()。 } if (().getName().equals(Message)) { serverMessage()。 } if (().getName().equals(Chat)) { serverChat()。 } if (().getName().equals(Exit)) { serverExit()。 } } catch (IOException e) { (e)。 } catch (ClassNotFoundException e1) { (讀對(duì)象發(fā)生錯(cuò)誤! + e1)。 } finally { try { ()。 } catch (IOException e) { (e)。 } } } /** * * 登錄處理 */ @SuppressWarnings(deprecation) public void serve
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1