導航:首頁 > 編程語言 > javasocket伺服器框架

javasocket伺服器框架

發布時間:2025-05-02 03:57:02

java socket通訊 有沒有什麼好點的框架

可以選擇Netty。Netty是基於Java NIO client-server的網路應用框架,使用Netty可以快速開發網路應用,例如伺服器和客戶端協議。Netty提供了一種新的方式來開發網路應用程序,這種新的方式使它很容易使用和具有很強的擴展性。Netty的內部實現是很復雜的,但是Netty提供了簡單易用的API從網路處理代碼中解耦業務邏輯。Netty是完全基於NIO實現的,所以整個Netty都是非同步的。
網路應用程序通常需要有較高的可擴展性,無論是Netty還是其他的基於Java Nio的框架,都會提供可擴展性的解決方案。Netty中一個關鍵組成部分是它的非同步特性,本片文章將討論同步(阻塞)和非同步(非阻塞)的IO來說明為什麼使用非同步代碼解決擴展性問題以及如何使用非同步。

② 通過Java中的Socket技術編寫能夠進行雙向通信的客戶端和伺服器,為了能夠同時進行消息的發送和接受,在服

SocketClient1.java內容如下:

package com.polyphylla.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class SocketClient1 {
private Socket socket;

public SocketClient1() {
{
socket = new Socket("127.0.0.1", 2222);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* @param args
*/
public static void main(String[] args) {
new SocketClient1().startClient();
}

public void startClient() {
new Thread(new ClientReader(socket)).start();
new Thread(new ClientWriter(socket)).start();
}

}

class ClientReader implements Runnable {
private Socket socket;

public ClientReader(Socket socket) {
this.socket = socket;
}

public void run() {
BufferedReader br = getReader();
String msg = null;
try {
while ((msg = br.readLine()) != null) {
System.out.println("client:" + msg);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
if (socket != null)
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

private BufferedReader getReader() {
try {
return new BufferedReader(new InputStreamReader(socket
.getInputStream()));
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}

class ClientWriter implements Runnable {
private Socket socket;

public ClientWriter(Socket socket) {
this.socket = socket;
}

public void run() {
PrintWriter pw = getWriter();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
try {
while ((str = br.readLine()) != null) {
pw.println(str);
pw.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (pw != null)
pw.close();
try {
if (socket != null)
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

private PrintWriter getWriter() {
try {
return new PrintWriter(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
SocketServer1.java內容如下:
package com.polyphylla.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class SocketServer1 {
private ServerSocket ss;
public SocketServer1() {
try {
ss = new ServerSocket(2222);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new SocketServer1().startServer();
}

public void startServer() {
try {
while (true) {
Socket s = ss.accept();
new Thread(new ServerReader(s)).start();
new Thread(new ServerWriter(s)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}

}
class ServerReader implements Runnable {
private Socket socket;
public ServerReader(Socket socket) {
this.socket = socket;
}
public void run() {
BufferedReader br = getReader();
String msg = null;
try {
while((msg = br.readLine()) != null) {
System.out.println("server:" + msg);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(br != null)
br.close();
if(socket != null)
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private BufferedReader getReader() {
try {
return new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
class ServerWriter implements Runnable {
private Socket socket;
public ServerWriter(Socket socket) {
this.socket = socket;
}
public void run() {
PrintWriter pw = getWriter();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
try {
while((str = br.readLine()) != null) {
pw.println(str);
pw.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (pw != null)
pw.close();
try {
if (socket != null)
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private PrintWriter getWriter() {
try {
return new PrintWriter(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}

③ 什麼是java socket

java技巧經驗
http://www.mywelt.net/?q=jts

61 條面向對象設計的經驗原則
ANT 基本概念、安裝與配置
AWT 和 SWING 的強大競爭者 - SWT 簡介
Axis + Tomcat 模擬銀行存取款服務
用 Java 編寫簡單 UDP 網路通信程序
用 JBuilder9 開發 Struts 的實例
用 JFace 和 SWT 構建一個簡單的應用程序
用 Jsp 動態輸出 excel 文檔和亂碼問題的解決
用 JSP/Servlet 構建三層式管理信息系統
用 SyncML 進行異構資料庫復制
用緩沖技術提高 JSP 應用的性能和穩定性
用連接池提高 Servlet 訪問資料庫的效率
程序開發中 Debug 和 Release 之本質區別
簡單教您如何使用 Factory Method 模式
簡易使用 Apache Web 讓你的 JSP "動"起來
Enhydra 入門 - 一個有用的中間件 - Enhydra
通過 Java Swing 看透 MVC 設計模式
通過 JDBC 連接 Oracle 資料庫的十大技巧
配置 Web 應用環境實現 JSP 留言簿開發
講解如何在 C/C++ 中調用 Java 的方法
講述在 Java 中 Decorate 的三種實現方法
詳細解析 JavaBeans 與 Ejb 的區別
詳細講解怎樣在 Java 中運行其它應用程序
詳細講述 JSP、PHP 與 Java 融合的開發環境
詳細為您解析 JSP 的環境引擎 - Websphere
詳細介紹用 JBuilder9 開發的 Struts 實例
詳解 EJB 3.0 是如何簡化應用程序的開發
詳解如何利用 iText 在 JSP 中生成 PDF 報表
詳解怎樣使用 Axis 開發 Web Service 的實例
Jar 文件包間接及 Jar 命令開發實例詳解
Java 的秘密 - 將應用程序的設定存在哪裡
Java 程序的反編譯 - 再次掀起編譯熱潮
Java 編程中更新 XML 文檔的常用方法集
Java 語言入門級的十二大特色詳細介紹
Java 入門基本語法
Java 入門所需的關鍵特性與 30 個基本概念
Java 關於中文亂碼問題的解決方案與經驗
Java 列表對象的性能分析和測試應用解析
Java 初學者常用開發工具介紹圖解
Java 基礎之"介面"與"包"
Java 對象轉為 String 的幾種常用方法剖析
Java 開發中的線程安全選擇與 Swing
Java 開發為什麼需要 UML?
Java 性能優化技巧集錦
Java 伺服器端編程安全的必讀本
Java 中 Static、this、super、final 用法
Java 中的強大武器 - 對象的序列化
JavaBeans 程序開發從入門到精通教程
Javamail 操作指南 - 實例代碼解析
Jboss 的 JDBC 數據源配置步驟詳解大全
JNI 使用技巧點滴
JSP 與 ASP 的比較
JudoScript - 讓 Java 離你更近一些
Spring WebFlow - 重用與抽象框架解析 (1)
Spring WebFlow - 重用與抽象框架解析 (2)
StarSuite 6.0 和 SDK 安裝以及配置指南 (1)
StarSuite 6.0 和 SDK 安裝以及配置指南 (2)
String.getBytes() 方法中的中文編碼問題
Swing 第三方工具的設計
Tomcat5.0 + MySql 配置 JDBC,DBCP,SSL
Web Services 在 Tomcat4.0.4 的安裝和測試
初學者入門 JAVA 的 XML 編程實例解析
初學者如何快速入門 JSP 實例分析
在 Java 應用開發中如何使用線程
在 Servlet 中如何捕獲 Session 事件
大話面向對象的前世與今生
如何進行 J2SDK 和 TOMCAT 的安裝及配置
如何在Web應用中啟動後台任務的實例講解
如何為 Java 應用程序添加退出事件的處理
如何使用 Java 程序實現 Logo 畫面的編程
實例講解如何穿越防火牆訪問 EJBs
開發中利用批處理 JDBC 語句提高處理速度
怎樣用 Java 實現 MSN Messager 的功能
怎樣用 jConfig 獲取 XML 文件中的配置信息
怎樣真正的在 Struts 框架下使用時間類型
怎樣在 Java 實例開發的過程中使用進度條
怎樣為 SWT 應用程序配備內容助理功能
怎樣使用 Java Servlet 動態生成圖片詳解
手把手教您如何編寫一個動畫 Applet 實例
揭開 Java Socket 編程中的一個秘密類
教您用 Java 做一個最簡單的 Socket 通話程序
教您純 Jsp 的自定義的單個文件上載代碼
教您在 Java 開發過程中如何應對異常處理
教您如何提高 Java 代碼性能的應用解析
教您將 Java 編譯為 EXE 的幾種簡易方法
教您快速上手使用 JDOM 處理 XML 文檔的技巧
教您怎樣在 Web 應用中動態創建 PDF 文件
教您一個壓縮歸檔的實用軟體
教你如何快速成為一名 Java 初級程序員
淺談實際開發中數據源在 JDBC 中的應用
淺析 Java 中常見的 Date 類的應用技巧
淺析 JavaBean 與 EJB 的區別與應用分析
測試對 Java 開發的重要性
深入解析 Java 的新特性 assertion
專家解答 Java 常見問題集錦 25 問
從 C++ 到 Java - 理解面向對象的關鍵所在
使用 Java 把文件/目錄壓縮成 ZIP 包最新技巧
澄清 Java 的介面與繼承機制

http://www.mywelt.net/?q=jts

閱讀全文

與javasocket伺服器框架相關的資料

熱點內容
properties文件編輯器 瀏覽:608
ios沙盒文件覆蓋 瀏覽:66
初中it編程學校哪個好 瀏覽:697
數據的主鍵是什麼 瀏覽:778
山東聯通免費升級20m 瀏覽:806
沃爾沃新版app怎麼使用 瀏覽:257
大數據干什麼都會被看到嗎 瀏覽:357
pdf在線閱讀html代碼 瀏覽:878
文件的PDF咋做 瀏覽:92
qq群的收藏文件怎麼找不到 瀏覽:758
fedora去掉老版本號 瀏覽:815
手機訪問手機文件夾 瀏覽:272
家長控制app怎麼樣 瀏覽:758
非農數據最早公布在哪個網 瀏覽:438
福州哪個網站可以包車 瀏覽:618
圖形輸出文件找不到了 瀏覽:774
如何將圖片弄成文件的形式 瀏覽:928
javasocket伺服器框架 瀏覽:193
手機qq2017舊版本 瀏覽:71
電腦無線共享密碼 瀏覽:876

友情鏈接