Netty學習5-Netty3.X服務端與客戶端
import java.net.InetSocketAddress; import java.util.Scanner; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org.jboss.netty.bootstrap.ClientBootstrap; import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelFuture; import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipelineFactory; import org.jboss.netty.channel.Channels; import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; import org.jboss.netty.handler.codec.string.StringDecoder; import org.jboss.netty.handler.codec.string.StringEncoder; /** * netty客戶端入門 */ public class Client { @SuppressWarnings("resource") public static void main(String[] args) { // 服務類 ClientBootstrap bootstrap = new ClientBootstrap(); // 執行緒池 ExecutorService boss = Executors.newCachedThreadPool(); ExecutorService worker = Executors.newCachedThreadPool(); // socket工廠 bootstrap.setFactory(new NioClientSocketChannelFactory(boss, worker)); // 管道工廠 bootstrap.setPipelineFactory(new ChannelPipelineFactory() { @Override public ChannelPipeline getPipeline() throws Exception { ChannelPipeline pipeline = Channels.pipeline(); pipeline.addLast("decoder", new StringDecoder()); pipeline.addLast("encoder", new StringEncoder()); pipeline.addLast("hiHandler", new HiHandler()); return pipeline; } }); // 連線服務端 ChannelFuture connect = bootstrap.connect(new InetSocketAddress( "127.0.0.1", 10101)); Channel channel = connect.getChannel(); System.out.println("client start"); Scanner scanner = new Scanner(System.in); while (true) { System.out.println("請輸入"); channel.write(scanner.next()); } } } import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelStateEvent; import org.jboss.netty.channel.ExceptionEvent; import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.SimpleChannelHandler; /** * 訊息接受處理類 */ public class HiHandler extends SimpleChannelHandler { // 接收訊息 @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { // 接收訊息 String s = (String) e.getMessage(); System.out.println(s); super.messageReceived(ctx, e); } // 捕獲異常 @Override public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception { System.out.println("exceptionCaught"); super.exceptionCaught(ctx, e); } // 新連線 @Override public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { System.out.println("channelConnected"); super.channelConnected(ctx, e); } // 必須【連線已經建立】,關閉通道的時候才會觸發 @Override public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { System.out.println("channelDisconnected"); super.channelDisconnected(ctx, e); } // channel關閉的時候觸發(比如服務端沒有啟動,客戶端發起連線的話,就會報這個錯) @Override public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { System.out.println("channelClosed"); super.channelClosed(ctx, e); } }
相關推薦
Netty學習5-Netty3.X服務端與客戶端
import java.net.InetSocketAddress; import java.util.Scanner; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org
基於Netty的一個WeoSocket通信服務器與客戶端代碼(非JS代碼)
soc AS hub 應用服務 str ram 當前 AR 如果 基於Netty的一個WeoSocket通信服務器與客戶端代碼(非JS代碼) 咳咳,在這裏呢,小軒就不多說什麽是WebSocket的,還有呢,小軒為什麽不給出JS-Client代碼?網上太多代碼可以用了。小軒這
新手學習-Tcp的服務端與客戶端的登入註冊系統
客戶端 最近臨近考試 還有好多科目需要預習 這個只能等到考試後再改一下了 現在這個程式問題很多 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.I
Netty編寫第一個服務端與客戶端應用程式
服務端 所有的 Netty 伺服器都需要以下兩部分 至少有一個 ChannelHandler:該遵紀安實現了伺服器對客戶端接受的資料的處理邏輯,即業務邏輯 引導(ServerBootStrap):這是配置伺服器的啟動程式碼。它必須繫結
Mina學習(1):mina實現簡單服務端與客戶端
mina是一個基於javaNio網路通訊應用框架,使用mina可以輕鬆的搭建伺服器,接下來將使用mina搭建一個小型的服務端 原始碼–MinaServer.java package serv
oracle服務端與客戶端字符集不同導致中文亂碼解決方案
use 修改環境變量 描述 image nls_lang oracle服務 環境 分析 導致 1.問題描述 用pl/sql登錄時,會提示“數據庫字符集(ZHS16GBK)和客戶端字符集(2%)是不同的,字符集轉化可能會造成不可預期的後果”,具體問題是中文亂碼,如下圖 2.
C# Socket簡單例子(服務器與客戶端通信)
項目 回車 pop ace log () client protocol comm 這個例子只是簡單實現了如何使用 Socket 類實現面向連接的通信。 註意:此例子的目的只是為了說明用套接字寫程序的大概思路,而不是實際項目中的使用程序。在這個例子中,實際上還有很多問題
TCP網絡程序實例——服務器端與客戶端交互
href tcpclient 端口號 信息 try 本機ip 發送數據 定義 .cn ◆ 服務器端 創建服務器端項目Server,在Main方法中創建TCP連接對象;然後監聽客戶端接入,並讀取接入的客戶端IP地址和傳入的消息;最後向接入的客戶端發送一條信息。代碼如下:
nagios 服務端與客戶端監控安裝與詳細配置,各配置文件詳解
this sql 引入 apache2 cpu load fine 宕機 pri require nagios 安裝與部署—————— 1、安裝前準備(1)創建nagios用戶和用戶組 [root@localhost ~]#groupadd nagios
NFS文件系統、服務器與客戶端安裝、exportfs命令
NFS exportfs命令 NFS服務端安裝 NFS客戶端安裝 NFS介紹 NFS是Network File system的縮寫,也就是網絡文件系統;基於RPC協議進行傳輸; 服務端安裝 yum install -y nfs-utils rpcbind //安裝rpcbind包
html原理簡介、第一個網頁服務器與客戶端
直接 ack 字符 time() true nec utf-8 RM 成了 #coding=utf-8 """ HTML: 20個標簽 一套瀏覽器認識的規則 學習規則。開發後臺程序:寫html文件 本地測試:找到文件直接雙擊打
使用Python的socket模塊搭建tcp服務器與客戶端
有客 cep 服務器 send msg AC 鏈接 upper 可能 # __author__ = ‘ZSnail‘ # socket就是一個網絡通訊協議 # 服務器端 import socket server = socket.socket() server.b
ROS之服務器與客戶端簡單程序遇到的錯誤
執行 AI gist 命令 鏈接 ret 教程 format fail 在按ROS入門教程(點擊打開鏈接)行進過程中遇到的錯誤 1、exec_depend與run_depend一樣 在按ROS入門教程(點擊打開鏈接)行進過程中到了執行 rosmsg show beg
java 界面編程用socket實現服務端與客戶端的循環通信。
accept star return IE while fde trac AS inf 服務端: package 實驗五聊天; import java.awt.BorderLayout; import java.awt.EventQueue; import
Python 絕技 —— UDP 服務器與客戶端
建模 又一 https lib python3 -a 數據 Coding doc i春秋作家:wasrehpic 0x00 前言 在上一篇文章「Python 絕技 —— TCP 服務器與客戶端」中,介紹了傳輸層的核心協議 TCP ,並運用 Python 腳本的 socket
Untiy中用C#實現TCP通訊(Socket通訊)服務端與客戶端皆可
簡而言之,TCP通訊原理大家可以從各種網路文獻上找到,這裡不做贅述。 只提出C#實現TCP通訊的一般方法和常用程式碼工具供第一次接觸TCP通訊的玩家參考,老玩家繞道。。。 為了方便大家理解我的程式碼,會適當提及通訊遠離。 1、建立服務端,TCP連線的基本: using U
為什麽從服務器與客戶端不能接收消息NetMQ框架?
toc main net rec 使用 ssa oid frame 接收消息 最近,我使用NetMQ發送或接收服務器和客戶端之間的消息。 服務器密碼: void Main() { CreatePullAndPushSocket(); Task.Factory.Sta
MongoDB服務端與客戶端下載、安裝和配置教程
MongoDB版本 3.6.3 MongoDB社群版 1.0 robomongo 下載 官網下載請點選這裡,百度雲下載請點選這裡,提取碼:6av6 安裝 MongoDB的安裝非常簡單,除了安裝路徑可以自己選擇之外,其它的步驟一直點下
java.TCP通訊(實現服務端與客戶端簡單的聊天)
要求: 編寫兩個java application應用程式,完成以下功能: 一個程式為服務端,建立TCP服務端套接字。 l另外一個程式為客戶端,建立TCP客戶端套接字。 這兩個程式可以互聯,完成一個基於TCP/IP網路的文字聊天程式。 java原始碼如下: 1)基
WebService服務端與客戶端得簡單應用,效能測試
用途: 比如需要從其他系統獲取資訊,但是不能暴露自己得實現方式的時候。 比較常用得有: 1.HttpClient 2.WebService (推薦使用WebService) 一.簡單介紹 服務端: 暴露出一個URL地址即可,列入 可以發現訪問進去就是一