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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于tcpip協(xié)議的網(wǎng)絡(luò)聊天程序服務(wù)端設(shè)計(jì)-資料下載頁(yè)

2024-12-03 19:15本頁(yè)面
  

【正文】 import 。 public class ChatServerFrame extends JFrame implements ActionListener{ // 按鈕面板 private JPanel btnPan = new JPanel(new FlowLayout())。 private JLabel listenPortLb = new JLabel( 服務(wù)監(jiān)聽(tīng)端口 : )。 private JTextField portTf = new JTextField(6666, 5)。 private JButton controlBtn = new JButton(開(kāi)始 )。 private JButton clearHintBtn = new JButton(清屏 )。 // 提示信息面板 private JTextArea hintTa = new JTextArea()。 //用戶(hù)列表面板 private DefaultListModel listModel=new DefaultListModel()。 private JList userList=new JList(listModel)。 private ChatServerNet 。 public ChatServerFrame() { initComponent()。 = new ChatServerNet(this)。 } private void initComponent() { buildBtnPan()。 buildHintPan()。 buildUserListPan()。 setSize(400, 300)。 Toolkit tool = ()。 setLocation((().width ().width) / 2, (().height ().height) / 2)。 setTitle(超越 網(wǎng)絡(luò)聊天室服務(wù)端 )。//面板標(biāo)題 setDefaultCloseOperation(EXIT_ON_CLOSE)。//關(guān)閑監(jiān)聽(tīng) setResizable(false)。//不可改變面板大小 setVisible(true)。//可視面板 } //構(gòu)建面板 public void buildBtnPan() { (listenPortLb)。//添加按鈕 (portTf)。 (controlBtn)。 (clearHintBtn)。 ()。 add(btnPan, )。//放于北部 ()。 ()。 (this)。//監(jiān)聽(tīng) (this)。 } //構(gòu)建列表 public void buildHintPan() { (false)。 JScrollPane scrollPane = new JScrollPane()。//加入滾動(dòng)條 ((聊天列表 ))。 ().add(hintTa)。 add(scrollPane, )。//置于中間 (請(qǐng)按開(kāi)始按鈕開(kāi)始聊天服務(wù) )。 ()。//內(nèi)容框背景顏色 設(shè)置為黃色 } //構(gòu)建用戶(hù)列表 public void buildUserListPan() { (60)。 JScrollPane userListPan=new JScrollPane(userList)。 ((用戶(hù)列表 ))。 add(userListPan,)。 ()。 } //設(shè)置按鈕監(jiān)聽(tīng)動(dòng)作 public void actionPerformed(ActionEvent arg0) { Object source = ()。 if (source == clearHintBtn) { ()。 return。 } String msg = ()。 if ((開(kāi)始 )) { (停止 )。 (false)。 (())。 } else { (開(kāi)始 )。 (true)。 ()。 } } public void addHint(String s) { (() + \r\n + s)。 } //用戶(hù)退出函數(shù) public void removeUser(String name) { (name)。 } public void addUser(String name) { (name)。 } public void refreshUserList(VectorString userNames) { ()。 for(String userName:userNames) { (userName)。 } } } TCP/IP 通信 ,處理用戶(hù)發(fā)送過(guò)來(lái)的服務(wù)請(qǐng)求 package 。//導(dǎo)入包 //導(dǎo)入文件 import 。 import 。 import 。 import 。 import 。 import 。 import 。 import 。//導(dǎo)入服務(wù)端界面文件 //創(chuàng)建類(lèi) public class ChatServerNet { private ServerSocket serverSocket = null。//初始套接字 private Vector users = new Vector()。//創(chuàng)建用戶(hù)矢量 private VectorString userNames = new VectorString()。 private ChatServerFrame frame。 //設(shè)置構(gòu)造函數(shù) public ChatServerNet(ChatServerFrame frame) { =frame。 } //設(shè)置方法 public void start(String port){ try { serverSocket=new ServerSocket((port))。 (new Date().toLocaleString()+ : 服務(wù)開(kāi)始端口 +port+.)。 //多線程 new Thread(){ @Override public void run() { try{ while(true) { new HandlerThread(()).start()。 } }catch (Exception e) {//防止異常 (frame, ())。 } } }.start()。//啟動(dòng)服務(wù)器 } catch (Exception e) { (frame, ())。 } } //結(jié)束服務(wù) public void stop() { try { if (serverSocket != null) ()。 } catch (Exception e) { } finally { (new Date().toLocaleString()+ : 服務(wù)結(jié)束 .)。 } } //創(chuàng)建 HandlerThread 類(lèi) class HandlerThread extends Thread {繼承類(lèi) private Socket socket。 private ObjectInputStream in = null。//輸入流 private ObjectOutputStream out = null。//輸出流 //構(gòu)造函數(shù) public HandlerThread(Socket socket) { = socket。 } //多線程 public void run() { String name = null。 try { in = new ObjectInputStream(())。 out = new ObjectOutputStream(())。 (歡迎來(lái)到超越 網(wǎng)絡(luò)聊天室 ,請(qǐng)輸入你的姓名 :)。//提示信息 ()。 name = (String) ()。//獲取用戶(hù)名 refreshUserList(add, name)。//涮新用戶(hù)列表 String oldMsg = 。//上次用戶(hù)發(fā)送信息 String msg = null。//本次用戶(hù)發(fā)送的信息
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1