基于开源SuperSocket实现客户端和服务端通信项目实战(发布版)

摘要

本期带给大家分享的是阿笨在实际工作中遇到的真实业务场景,请跟随阿笨的视角去如何一步步解决WEB网页快速批量打印,如果您对本期的教程内容感兴趣,那么请允许让阿笨带着大家一起学习吧!

废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。

你准备好了吗,老夫要开始撸了

一、需求背景介绍

大概是2年以前工作中碰到的一个实际项目,在仓储物流系统中,打印是一个很频繁的操作环节,仓库每天经常需要大批量的在WEB网页上打印功能。比如内部HTML标签、邮递标签(10x10,10x16.5,10x20)、发货清单(A5)以及电池信和发票(A4)以及物流商返回的PDF格式的邮递标签文件,所以打印环节的快慢直接影响仓库操作人员的操作便捷性和仓库的发货效率。

1.1、大家都知道WEB网页上打印的过程:

一般分为:1、扫描包裹条形码后点击打印按钮=>2、在线弹出打印对话框=>3、选择对应的打印这三个步骤。

如果同时打印知识,假如一次性批量打印不同种类的SKU产品条码这种方式极大的繁琐给客户带来不友好的体验。

因此我们当时考虑将WEB网页打印方式能不能调整为桌面客户端打印实现,但是为了更好的与现有WEB网页业务系统集成,故又不想重新独立开发出一套客户端打印系统,那么我们能不能开发出一套打印组件,完全与业务逻辑分离只接管打印工作呢?

答案是:肯定OK!

1.2、WEB网页和WinForm桌面客户端打印的优缺点

WEB网页打印方式存在的缺陷:

1)、大批量打印SKU产品条码,会经常出现走纸偏移的问题,需要经常人工校验打印走纸;

2)、不能同时一次性打印不同规格的纸张,只能单个规格类型的进行打印;

等等。。。

WinForm桌面客户端打印优势:

1)、可以动态的切换本地默认打印机,实现根据配置文件自动匹配打印机无需人工选择,直接将打印默认文件发送指定的打印机;

2)、无需像浏览器一样安装单独PDF在线浏览插件,C#有程序的组件专门针对PDF文件格式打印;

等等。。。

1.3、那么我们今天要解决的问题可以总结为下面的一句话:

如何让WEB网页端和桌面客户端进行交互通讯?

二、实现原理图

草稿图

原理图

三、涉及覆盖的知识点

.NET WebService基本使用技巧;

WinForm中如何使用WebBroswer浏览器控件进行HTML页面的打印;

TCP/IP通讯组件SuperSocket实现服务端向指定的客户端推送(push)消息;

服务端crash或者重启后客户端如何实现自动断线重连;

如何防止IIS自动回收应用程序进程;

Redis消息队列存储用户离线数据实现消息的持久化;

四、源代码在线演示和解读

亲~你想要的干货视频在个人×××订阅号里,同时QQ群里也有高清版的下载地址哦!

不信的话,扫一扫

原文地址:http://blog.51cto.com/4500899/2082705

时间: 2024-10-04 16:38:28

基于开源SuperSocket实现客户端和服务端通信项目实战(发布版)的相关文章

Netty入门之客户端与服务端通信(二)

Netty入门之客户端与服务端通信(二) 一.简介 在上一篇博文中笔者写了关于Netty入门级的Hello World程序.书接上回,本博文是关于客户端与服务端的通信,感觉也没什么好说的了,直接上代码吧. 二.客户端与服务端的通信 2.1 服务端启动程序 public class MyServer { public static void main(String[] args) throws InterruptedException { EventLoopGroup bossGroup = ne

警察与小偷的实现之一客户端与服务端通信

来源于ISCC 2012 破解关第四题 目的是通过逆向police,实现一个thief,能够与police进行通信 实际上就是一个RSA加密通信的例子,我们通过自己编写客户端和服务端来实现上面的thief和police的功能.. 要通信,这们这次先通过python写出可以进行网络连接的客户端与服务端.. 服务端代码 #!/usr/bin/env python import SocketServer from time import ctime HOST = '127.0.0.1' PORT =

Python socket编程客户端与服务端通信

目标:实现客户端与服务端的socket通信,消息传输. 客户端 客户端代码: from socket import socket,AF_INET,SOCK_STREAM #服务端的ip地址 server_ip = '127.0.0.1' #服务端socket绑定的端口号 server_port = 20000 if __name__ == '__main__': while True: str_msg = input("请输入要发送信息:") if str_msg != "&

二、网络编程-socket之TCP协议开发客户端和服务端通信

知识点:之前讲的udp协议传输数据是不安全的,不可靠不稳定的,tcp协议传输数据安全可靠,因为它们的通讯机制是不一样的.udp是用户数据报传输,也就是直接丢一个数据包给另外一个程序,就好比寄信给别人,信丢了你也不知道,tcp传输需要先和服务端建立连接,当客户端与服务器连接时,服务器会给出应答,我俩连上了,而且数据传过来还会进行一个数据包数量验证,不一致会重新发送,还有其他种种验证,总之保证了数据传输安全可靠   这一章主要介绍使用套接字,编写一个tcp协议客户端和服务端.同样要用到上一章节提到小

使用多线程实现多个客户端与服务端通信1

Server.java package socket; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket; /** * 聊天室服务端 * @author 小

ssl客户端与服务端通信的demo

服务端程序流程 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <errno.h> 4 #include <string.h> 5 #include <sys/types.h> 6 #include <netinet/in.h> 7 #include <sys/socket.h> 8 #include <sys/wait.h> 9 #include &

采用异步socket实现客户端和服务端通信的demo

MAC系统基于UNIX的核心系统增强了系统的稳定性.性能以及响应能力.由于unix需要付费,以及版本基本上不更新,很多采用unix系统的电脑转用linux,unix处于停滞不前状态,而linux由于是开源的,免费的,所以全球很多技术大牛在不断改进它,给它增加新技术,增加新理念,是它日新月异的发展.所以mac os后期主要借鉴linux的新技术,所以现在的mac os更像linux而非unix.可以说苹果系统是从linux和unix演化而来的,所以linux的socket的编程对苹果系统仍然有效.

使用socket实现简单的客户端和服务端通信(C#语言)

1.主要思路: (1) 服务端开启监听线程,等待客户端的连接. 每个socket连接放到独立线程中处理. (2) 服务端和客户端使用约定的消息格式通信.对于比较复杂的消息(如向服务端传递一个实例),可以使用json封装传输. (3) 每个连接的客户端,注册唯一的ClientID,在服务端以此来区分消息的来源. 2.代码构成 实现该样例包含两个cs的客户端程序. 分别为 服务端 和 客户端. 3.主要代码: (1) 服务端 xaml <Window x:Class="WpfApplicati

java socket 客户端和服务端通信

1.采用阻塞式readUTF():长连接 2.java socket的3个主要方面如下 1)accept 阻塞,直到接受到一个连接,并返回一个客户端对象实例 2)getInputStream() 3)getOutputStream() 客户端代码: public class ClientSocket { public static final String IP="10.100.63.18"; public static final int PORT=667; public stati