<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
題目實現:獲取遠端伺服器和客戶機的IP地址和埠號。
建立一個伺服器類:ServerSocketFrame,繼承JFrame類
寫一個getserver() 方法,範例化Socket物件,啟用9527當服務的埠。
建立一個使用者端類:ClientSocketFrame,繼承JFrame類。
寫一個connect() 方法,範例化Socket物件,連線本地服務的9527埠服務。
獲得遠端伺服器的地址:socket.getInetAddress();
獲得遠端伺服器的IP地址 :netAddress.getHostAddress()
獲得遠端伺服器的埠號:socket.getPort()
獲得使用者端的地址:socket.getLocalAddress()
獲得使用者端的IP地址:localAddress.getHostAddress()
獲得使用者端的埠號:socket.getLocalPort()
ServerSocketFrame
package com.xiaoxuzhu; import java.awt.BorderLayout; import java.net.*; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; /** * Description: * * @author xiaoxuzhu * @version 1.0 * * <pre> * 修改記錄: * 修改後版本 修改人 修改日期 修改內容 * 2022/5/31.1 xiaoxuzhu 2022/5/31 Create * </pre> * @date 2022/5/31 */ public class ServerSocketFrame extends JFrame { private JTextArea ta_info; private ServerSocket server; // 宣告ServerSocket物件 private Socket socket; // 宣告Socket物件socket public void getserver() { try { server = new ServerSocket(9527); // 範例化Socket物件 ta_info.append("伺服器通訊端已經建立成功n"); // 輸出資訊 while (true) { // 如果通訊端是連線狀態 ta_info.append("等待客戶機的連線......n"); // 輸出資訊 socket = server.accept(); // 範例化Socket物件 ta_info.append("連線成功......n"); } } catch (Exception e) { e.printStackTrace(); // 輸出異常資訊 } } public static void main(String[] args) { // 主方法 ServerSocketFrame frame = new ServerSocketFrame(); // 建立本類物件 frame.setVisible(true); frame.getserver(); // 呼叫方法 } public ServerSocketFrame() { super(); setTitle("伺服器端程式"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 336, 257); final JScrollPane scrollPane = new JScrollPane(); getContentPane().add(scrollPane, BorderLayout.CENTER); ta_info = new JTextArea(); scrollPane.setViewportView(ta_info); } }
ClientSocketFrame
package com.xiaoxuzhu; import java.awt.BorderLayout; import java.net.*; import javax.swing.*; import javax.swing.JScrollPane; /** * Description: * * @author xiaoxuzhu * @version 1.0 * * <pre> * 修改記錄: * 修改後版本 修改人 修改日期 修改內容 * 2022/5/31.1 xiaoxuzhu 2022/5/31 Create * </pre> * @date 2022/5/31 */ public class ClientSocketFrame extends JFrame { // 建立類繼承JFrame類 private Socket socket; // 宣告Socket物件 private JTextArea ta = new JTextArea(); // 建立JtextArea物件 public ClientSocketFrame() { // 構造方法 super(); // 呼叫父類別的構造方法 setTitle("獲取Socket資訊"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 351, 257); final JScrollPane scrollPane = new JScrollPane(); getContentPane().add(scrollPane, BorderLayout.CENTER); scrollPane.setViewportView(ta); } private void connect() { // 連線通訊端方法 ta.append("嘗試連線......n"); // 文字域中資訊資訊 try { // 捕捉異常 socket = new Socket("127.0.0.1", 9527); // 範例化Socket物件 ta.append("完成連線。n"); // 文字域中提示資訊 InetAddress netAddress = socket.getInetAddress();// 獲得遠端伺服器的地址 String netIp = netAddress.getHostAddress();// 獲得遠端伺服器的IP地址 int netPort = socket.getPort();// 獲得遠端伺服器的埠號 InetAddress localAddress = socket.getLocalAddress();// 獲得使用者端的地址 String localIp = localAddress.getHostAddress();// 獲得使用者端的IP地址 int localPort = socket.getLocalPort();// 獲得使用者端的埠號 ta.append("遠端伺服器的IP地址:" + netIp + "n"); ta.append("遠端伺服器的埠號:" + netPort + "n"); ta.append("客戶機原生的IP地址:" + localIp + "n"); ta.append("客戶機原生的埠號:" + localPort + "n"); } catch (Exception e) { e.printStackTrace(); // 輸出異常資訊 } } public static void main(String[] args) { // 主方法 ClientSocketFrame clien = new ClientSocketFrame(); // 建立本例物件 clien.setVisible(true); // 將表單顯示 clien.connect(); // 呼叫連線方法 } }
伺服器啟動,等待連線
使用者端連線上
伺服器提示,使用者端連線成功
到此這篇關於Java聊天室之實現獲取Socket功能的文章就介紹到這了,更多相關Java聊天室內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45