日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

discard python_Netty入门教程(一) 实现DISCARD服务

發布時間:2025/3/15 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 discard python_Netty入门教程(一) 实现DISCARD服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

官方那個給出的介紹是:Netty是由JBOSS提供的一個java開源框架。Netty提供異步的、事件驅動的網絡應用程序框架和工具,用以快速開發高性能、高可靠性的網絡服務器和客戶端程序。然后我們簡單理解一下,這玩意就是個程序,干什么的?netty是封裝java socket noi的。 類似的功能是 apache的mina。

使用Netty實現Socket丟棄服務

相對于Tomcat這種Web Server(顧名思義主要是提供Web協議相關的服務的),Netty是一個Network Server,是處于Web Server更下層的網絡框架,也就是說你可以使用Netty模仿Tomcat做一個提供HTTP服務的Web容器。其實一個好使的處理Socket的東西

實現丟棄服務

這里插一下,就是我們的的通信是建立在一定的協議之上的,就比如我們常用的Web工程,前臺(瀏覽器)發送一個請求,后臺做出相應返回相應的結果,這個SOCKET通信的過程亦是如此。

在netty官方指南里面有講,世上最簡單的協議不是'Hello, World!' 而是 DISCARD(拋棄服務)。這個協議將會拋棄任何收到的數據,而不響應。就是你客戶端發送消息,好,發送過去了,服務器也收到了,但是拋棄了。

說白了,就是你發一條消息給我,我收到了,僅此而已,不做任何響應。下面我們看看大致的步驟。

創建項目,添加Netty 依賴

實現丟棄服務

運行服務

使用Python進行測試

創建項目,添加Netty 依賴

使用IDEA創建一個普通項目,然后添加jar包或者直接創建一個maven項目也行。

在Maven中搜索netty-all 即可 地址是 http://mvnrepository.com/artifact/io.netty/netty-all 建議選擇5.0.0以上的版本。

或者直接創建Maven項目,引入依賴如下

io.netty

netty-all

5.0.0.Alpha2

實現丟棄服務

package com.company;

import io.netty.buffer.ByteBuf;

import io.netty.channel.ChannelHandlerAdapter;

import io.netty.channel.ChannelHandlerContext;

import io.netty.util.CharsetUtil;

import io.netty.util.ReferenceCountUtil;

/**

* 本文件由周濤創建,位于com.company包下

* 創建時間2018/4/20 11:46

* 郵箱:zhoutao@xiaodouwangluo.com

* 作用:實現丟棄服務

*

* @author tao

*/

public class DiscardServerHandle extends ChannelHandlerAdapter {

/**

* 接收到SOCKET的時候會調用此方法

* @param ctx

* @param msg

* @throws Exception

*/

@Override

public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {

try {

//獲取到接收的內容,并且實現

ByteBuf in = (ByteBuf) msg;

String message = in.toString(CharsetUtil.UTF_8);

System.out.println(message);

} finally {

ReferenceCountUtil.release(msg);

}

}

/**

* 有新的連接加入的時候

* @param ctx

* @throws Exception

*/

@Override

public void handlerAdded(ChannelHandlerContext ctx) throws Exception {

System.out.println("新增Channel ,ChannelId = " + ctx.channel().id());

}

/**

* 有連接斷開被移除的時候調用

* @param ctx

* @throws Exception

*/

@Override

public void handlerRemoved(ChannelHandlerContext ctx) throws Exception {

System.out.println("移除Channel ,ChannelId = " + ctx.channel().id());

}

/**

* 發生異常的時候調用

* @param ctx

* @param cause

* @throws Exception

*/

@Override

public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {

cause.printStackTrace();

ctx.close();

}

}

運行服務

package com.company;

import io.netty.bootstrap.ServerBootstrap;

import io.netty.channel.ChannelFuture;

import io.netty.channel.ChannelInitializer;

import io.netty.channel.ChannelOption;

import io.netty.channel.EventLoopGroup;

import io.netty.channel.nio.NioEventLoopGroup;

import io.netty.channel.socket.SocketChannel;

import io.netty.channel.socket.nio.NioServerSocketChannel;

/**

* 本文件由周濤創建,位于com.company包下

* 創建時間2018/4/20 11:46

* 郵箱:zhoutao@xiaodouwangluo.com

* 作用:創建運行服務

*

* @author tao

*/

public class DiscardServer {

private int port;

public DiscardServer(int port) {

this.port = port;

}

public void run() throws InterruptedException {

EventLoopGroup boos = new NioEventLoopGroup();

EventLoopGroup worker = new NioEventLoopGroup();

System.out.println("準備運行在端口:" + String.valueOf(this.port));

try {

ServerBootstrap serverBootstrap = new ServerBootstrap();

serverBootstrap.group(boos, worker)

.channel(NioServerSocketChannel.class)

.option(ChannelOption.SO_BACKLOG, 128)

.childHandler(new ChannelInitializer() {

@Override

protected void initChannel(SocketChannel socketChannel) throws Exception {

socketChannel.pipeline().addLast(new DiscardServerHandle());

}

});

ChannelFuture sync = serverBootstrap.bind(port).sync();

sync.channel().closeFuture().sync();

} finally {

worker.shutdownGracefully();

boos.shutdownGracefully();

}

}

public static void main(String[] args) {

DiscardServer server = new DiscardServer(8080);

try {

server.run();

} catch (InterruptedException e) {

System.out.println("發生了異常信息,異常信息如下所示:");

e.printStackTrace();

}

}

}

使用Python進行測試

python內置了socket庫可以實現連接,我們這里使用Pyhton3.x來進行操作socket.當然這里只是演示SOCKET,你也可以使用其他方法嘗試連接socket比如 js,java,或者talnet命令。

#!/usr/bin/env python

# encoding: utf-8

#coding=utf-8

__author__ = '藥師Aric'

'''

client端

長連接,短連接,心跳

'''

import socket

import time

host = '127.0.0.1'

port = 8080

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) #在客戶端開啟心跳維護

client.connect((host, port))

send_count = 0

try:

while True:

timeStr= time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

client.send((u"你好,這是Python客戶端,已經您發送消息 %s" % timeStr).encode())

send_count = send_count + 1

print("發送數據完成,已發送次數:%d" % send_count)

time.sleep(2)

except:

print("當前系統已經和服務器斷開連接....")

運行Pyhton 代碼,嘗試連接SOCKET,執行一會之后停止pyhton ,結果如下:

python發送的數據

/Users/tao/Code/Python/redisDemo/venv/bin/python /Users/tao/Code/Python/redisDemo/main/index.py

發送數據完成,已發送次數:1

發送數據完成,已發送次數:2

發送數據完成,已發送次數:3

發送數據完成,已發送次數:4

發送數據完成,已發送次數:5

當前系統已經和服務器斷開連接....

Netty收到的數據

image

總結

以上是生活随笔為你收集整理的discard python_Netty入门教程(一) 实现DISCARD服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 538国产精品一区二区免费视频 | 黄色福利在线观看 | 在线看国产精品 | 日本加勒比一区二区 | 亚洲视频在线观看一区二区 | 国产精品电影网 | 黄色精品免费 | 久久99国产精品久久99果冻传媒 | 天天射夜夜操 | www九九九 | 久久亚洲AV成人无码国产人妖 | 伊伊总综合网 | 日本三级韩国三级美三级91 | 精品国产乱码久久久久久88av | 夏晴子在线 | 丁香在线| 黄色片免费视频 | 国产精品视频久久久久久 | 欧美另类videossexo高潮 | 午夜香蕉视频 | 黄色在线观看视频网站 | 无码人妻精品一区二区三区不卡 | 亚洲日本三级 | 影视av | 国产三极片 | 少妇被黑人到高潮喷出白浆 | 国产人妖视频 | 国产精品日韩无码 | 波多野结衣在线观看视频 | 久久久综合视频 | 99国产在线播放 | 搞逼综合网 | 麻豆亚洲av熟女国产一区二 | 久久久不卡国产精品一区二区 | 99精品欧美一区二区三区 | 四虎在线免费观看 | 亚洲免费久久 | 色播五月婷婷 | 国产一区精品视频 | 国产美女一区 | 日本熟妇色xxxxx日本免费看 | 欧洲做受高潮欧美裸体艺术 | 久久久久久中文 | 一区二区xxx | 久久久久国产精品无码免费看 | 国产成人精品一区二区三区 | 久久精品国内 | 最好看的电影2019中文字幕 | 日韩网站在线 | 日韩av在线播放一区 | 国内久久精品视频 | 伊人三级 | 日本高清有码 | 中文精品久久久久人妻不卡 | 国产日韩av一区二区 | 午夜视频在线观看免费视频 | 艳情五月 | 国产二区自拍 | a级片久久| 黑人巨大猛烈捣出白浆 | 夜夜嗨av一区二区三区免费区 | 国产精品久久综合青草亚洲AV | 日韩av黄色片 | 国产尤物在线视频 | 国产又粗又猛又爽69xx | 可以免费看污视频的网站 | 一边摸一边做爽的视频17国产 | 国产精品美女www爽爽爽视频 | 国产精品视频一区二区在线观看 | 奇米四色在线观看 | 色视频网| 国产免费黄色 | 亚洲 美腿 欧美 偷拍 | www亚洲成人 | 狠狠艹av| 黑人玩弄人妻一区二 | 亚洲av无码专区国产乱码不卡 | 国产精品美女www爽爽爽视频 | 日日夜夜2017 | 无码人妻黑人中文字幕 | 欧美亚洲| 污污网站免费在线观看 | 日本黄色大片免费看 | 777色| www.久久精品视频 | 国产不卡在线观看视频 | 琪琪伦伦影院理论片 | 爱情岛黄色 | 日韩免费网站 | 99亚洲国产精品 | 亚洲av永久无码精品放毛片 | 97精品熟女少妇一区二区三区 | 国产婷婷一区二区三区久久 | 福利片网址| 国产伦理吴梦梦伦理 | 屁屁影院一区二区三区 | 精彩视频一区二区三区 | 国产无遮挡裸体免费视频 | 日本视频免费看 |