public class TransClient {
/**
* @param args
* 练习:客户端输入字母数据,发送给服务端,服务端收到后显示在控制台,并将该数据转换成大写返回给客户端,直到客户端输入over,转换结束
* 思路:
* 1,需要现有socket端点,
* 2,客户端的数据源是键盘输入,目的是socket
* 3,需要将服务端发回的信息接收,源是socket
* 4,将数据显示再打印到控制台
* 5,在这些操作过程中的数据,都是文本数据,因此用字符流操作
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
Socket s=new Socket(InetAddress.getLocalHost().getHostAddress(),10004);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
PrintWriter out=new PrintWriter(s.getOutputStream(),true);
BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));
String line=null;
while((line=br.readLine())!=null){
if("over".equals(line+"\r\n")){
break;
}
out.write(line);
out.flush();
System.out.println(in.readLine());
}
s.close();
}
}
public class TransServer {
/**
* @param args
* 练习:客户端输入字母数据,发送给服务端,服务端收到后显示在控制台,并将该数据转换成大写返回给客户端,直到客户端输入over,
* 转换结束
* @throws IOException
*/
public static void main(String[] args) throws IOException {
ServerSocket ss = new ServerSocket(10004);
Socket s = ss.accept();
String address = s.getInetAddress().getHostAddress();
System.out.println(address + "...connected");
BufferedReader brin = new BufferedReader(new InputStreamReader(
s.getInputStream()));
PrintWriter out = new PrintWriter(s.getOutputStream(), true);
String text = null;
while ((text = brin.readLine()) != null) {
text = text.toUpperCase();
out.write(text+"\r\n");
out.flush();
}
s.close();
ss.close();
}相关推荐
【详解】TCP/UDP模式下的MODBUS协议转换
modbus测试 此功能主要用来实现设备通讯的兼容性。比如相距较远的两台设备,其中A设备使用Modbus RTU协议进行通讯,B设备使用Modbus TCP协议进行通讯。 如果不使用协议转换功能,那么将无法识别彼此的数据。如果A设备连接的DTU使用ModbusRTU转Modbus TCP功能,那么A设备发送Modbus RTU格式的数据时,B设备就会收到Modbus TCP格式的数据;B设备发送Modbus TCP格式的数据,A设备会接收到Modbus RTU格式的数据,从而实现了不同协议设备的兼容互联。
网络面试题4
5:进程间通讯的方式有哪些,各有什么优缺点 6:tcp连接建立的时候3次握手的具体过程,以及其中的每一步是为什么 7:tcp断开连接的具体过程,其中每一步是为什么那么做 8:tcp建立连接和断开连接的各种过程中的状态转换细节 9:epool与select的区别 5:进程间通讯的方式有哪些,各有什么优缺点 进程间通信主要包括管道, 系统IPC(包括消息队列,信号量,共享存储),
BACnet与Modbus TCP、KNX协议转换技术深度解析
议转换器在智能楼宇系统集成中发挥着至关重要的作用,它们打破了不同协议系统之间的壁垒,实现了真正意义上的互联互通。随着BACnet/SC(Secure Connect)等增强安全性的新协议出现,以及物联网平台的普及,协议转换器也将持续演进,适应新的技术环境。
TCP状态转换/ 半连接/ 端口复用代码实现
主动关闭方等待最后一个ACK,表示对方已经收到了主动关闭方的确认。
TCP协议学习总结
我们知道在TCP/IP模型中,有时也叫DoD(Department of Defense)模型,TCP/IP简化OSI的七层模型为四层,由下而上分别为:网络接口层,网际层,传输层和应用层。而今天我学习的就是传输层的TCP协议(传输控制协议)。 一.TCP协议简介 TCP是TCP/IP协议栈中的传输层的协议,TCP协议又叫传输控制协议(Transport Control Prot
OPC到MODBUS TCP通信协议转换实战
在现代工业自动化领域,通信协议是连接不同设备和系统、实现数据交换和控制的关键技术。随着工业4.0和智能制造概念的兴起,各种通信协议的重要性愈发凸显。本章将对工业自动化中常见的通信协议进行概述,阐明它们的设计目的、应用场景以及在实际工作中的基础作用。工业通信协议的种类繁多,例如以太网基础的协议MODBUS TCP、工业互联网协议OPC UA,以及现场总线协议Profinet和Ethernet/IP等。这些协议各有特点,适应于不同工业自动化场景下的特定需求。
TCP连接的几种状态及转换
一、TCP状态机是TCP连接的变化过程。 Tcp在三次握手和四次挥手的过程,就是一个tcp的状态说明,由于tcp是一个面向连接的,可靠的传输,每一次的传输都会经历连接,传输,关闭的过程,无论是哪个方向的传输,必须建立连接才行,在双方通信的过程中,tcp 的状态是不一样的。 下面介绍一下,在三次握手和四次挥手的过程中的几种状态,如下图所示,是tcp状态的变化过程 各种状态的解释 LISTEN:侦听来自远方TCP端口的连接请求 SYN-SENT:发送连接请求后等待匹配的连接请求 SYN-RE
tcp转http协议工具
使用说明,在ubuntu环境,解压,进入/utils/websockify目录下,执行命令 ./run 6670 127.0.0.1:6699 6670为http端口,6699为tcp的端口
TCP协议---服务器与客户端状态转换图
TCP服务器与客户端通信过程的状态转换图 理解状态转换是使用netstat命令来诊断网络问题的基础,也是理解比如调用connect,accept和close函数的过程的关键所在。 下面是TCP中的一种连接过程: 客户端发起连接请求 --> 连接确立 --> 信息交互 --> 客户端发起关闭连接请求 --> 完成关闭连接. (1)客户机的TCP状态序列 (2)...
从315MHz到125kHz:手把手教你用Arduino模拟汽车钥匙的RKE/PKE信号(附代码)
本文详细介绍了如何使用Arduino开发板和射频模块模拟汽车钥匙的RKE/PKE信号,包括硬件准备、代码实现和安全机制。通过实践教程,读者可以深入理解315MHz和125kHz信号在汽车电子领域的应用,掌握无钥匙进入系统的核心技术。
5分钟搞定!用Cursor和.NET 9.0快速搭建串口通讯上位机(附VS Code插件配置)
本文分享了如何利用Cursor AI编程助手与.NET 9.0,在5分钟内快速构建一个功能完整的串口通讯上位机程序。通过自然语言描述需求,AI自动生成WinForms界面和核心代码,极大提升了硬件调试工具的定制开发效率。文章详细介绍了环境配置、AI协作编码、功能实现与调试的全过程。
26-网络编程-13-网络编程(TCP协议-练习-文本转换客户端)
/* * 【需求】创建一个英文大写转换服务器 * 客户端键盘输入字母数据,发送给服务端,服务端收到后显示在控制台,并将该数据转成大写反馈给客户端,直到客户端输入over为止 */ /** * 【分析】有客户端,也有服务端,用TCP传输协议完成。 */ /** * 【思路】 * 客户端: * 1.需要先有Socket端点 * * 2.客户端的数据源:键盘 * (将键盘输入
手把手教你用HI3516CV610搭建智能安防摄像头(附完整开发资料)
本文详细介绍了基于海思HI3516CV610 SOC搭建智能安防摄像头的完整开发流程,包括硬件选型、系统架构设计、开发环境搭建、智能分析功能开发及系统调优。通过实战案例,展示了如何利用内置NPU实现人形检测和异常行为分析,并提供了量产测试方案,帮助开发者快速完成智能摄像头项目。
数据通信技术-练习01
数据通信技术练习 将下列数据进行进制之间的转化 二进制 十进制 十六进制 ? ? F2 101111 ? ? ? 172 ? 110...
5分钟搞定!用L型匹配电路优化窄带天线性能(附Smith圆图实操)
本文针对窄带天线阻抗匹配难题,提供了一套5分钟快速解决方案。通过详解L型匹配电路的核心原理,并结合Smith圆图这一射频工程师的“瑞士军刀”,手把手指导如何选择拓扑、计算元件值并进行实际调试,旨在帮助硬件工程师高效优化天线性能,实现最大功率传输。
Windows Server双机热备实战:用IIS+ARR+NLB搭建高可用Web服务(附避坑指南)
本文详细介绍了在Windows Server环境下,利用IIS、ARR(Application Request Routing)和NLB(Network Load Balancing)构建高可用Web服务的实战方案。通过双机热备架构,实现从网络层到应用层的全面冗余与智能流量分发,并提供了关键的配置步骤、常见避坑指南及性能调优建议,确保企业级Web服务的连续性与可靠性。
传输层协议——TCP协议
1.TCP 是面向连接的运输层协议。应用程序在使用 TCP 协议开展通信前,必须先建立起 TCP 连接。当数据传送完毕后,还需释放已建立的 TCP 连接。2.每一条 TCP 连接仅能拥有两个端点,且每一条 TCP 连接只能是点对点的(一对一)通信模式。3.TCP 提供可靠交付服务,通过 TCP 连接传送的数据,能够实现无差错、不丢失、不重复,并且按照发送顺序到达接收端。4.TCP 支持全双工通信,允许通信双方的应用进程在任意时刻都能发送数据。
实战优化!C#上位机串口通信卡顿问题:超时机制+数据缓存方案
串口名</param>/// <param name="baudRate">波特率
UDP协议转换TCP协议
UDP协议转换TCP协议 项目背景:项目类似中间件 作用是数据搬运 ,可以搬运文件 ,视频,音频 。从互联网把数据搬运到内网中。有的时候拉取视频流数据的时候 使用UDP拉取会存在丢包的情况 通过TCP拉拉取视频流数据 再通过UDP发送这样可以保证质量也能提高效率。 着重说明协议转换 使用的技术 1.netty 2.scoket 过程描述 测试利用两个视频开源平台 LiveGBS 一个放在内网中充当视频播放设备 此处命名为SPA2 一个放在外网中充当视频源平台 此处命名为SPA1,在使用一个摄像头设
RKNN 端侧部署必看:YOLOv11 Pose 姿态估计模型转换与性能优化实战
随着人工智能技术在边缘计算领域的快速发展,姿态估计作为计算机视觉的重要分支,在智能监控、人机交互、体感游戏等场景中展现出巨大的应用潜力。本文深入研究了YOLOv11 Pose模型在Rockchip RKNN平台上的部署方案,从理论基础、模型转换、平台优化到实际部署进行了全面阐述。通过详细的技术分析和实验验证,证明了RKNN平台能够有效提升YOLOv11 Pose的推理性能,在RK3588硬件平台上实现了高达100 FPS的实时姿态检测,为边缘计算场景下的姿态估计应用提供了高效的解决方案。
从业务角色到工作台:一步步创建 SAP Fiori Launchpad Space 与 Page
SAP S/4HANA Launchpad 配置优化指南:从业务角色出发构建高效工作台 本文针对S/4HANA项目中用户普遍反映的"入口难找"问题,提出基于Spaces和Pages的系统化解决方案。通过"以工作岗位为中心"的设计理念,将Launchpad信息架构重构为:一个业务角色对应一个Space,每个Space包含1-5个Page,Page内按任务划分2-5个Section,每个Section放置3-7个Tiles。文章详细阐述了从Business Role入手配
TCP协议详解
UDP基本包括了传输层所必须的端口字段。它相信“网之初,性本善,不丢包,不乱序”。 后来呢,我们都慢慢长大,了解了社会的残酷,变得复杂而成熟,就像TCP协议一样。它之所以这么复杂,那是因为它秉承的是“性恶论”。它天然认为网络环境是恶劣的,丢包、乱序、重传,拥塞都是常有的事情,一言不合就可能送达不了,因而要从算法层面来保证可靠性。 TCP包头格式 TCP头 源端口号和目标端口号和UDP是一样的。如果没有这两个端口号。数据就不知道应该发给哪个应用。 包的序号。为什么要给包编号呢? 为了解决乱序的问题。不编
华为的C语言编程规范.pdf
华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。
TCP协议与UDP协议
概念理解 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。 TCP/IP协议集包括应用层,传输层,网络层,网络访问层。 其中...
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
TCP协议
TCP协议 概念 所谓协议,是指通信的双方,为了保证通信效果,特意在通信形式和内容上的一致协商。在生活中,协议处处可见,例如规定好的交通出行统一靠右行驶,这其实就是一种协议。在计算机世界中,计算机与计算机之间的沟通更加抽象复杂,为了保证能够各种应用场景下的正确通信,众多计算机世界中的协议应运而生。这其中最重要的当属TCP协议和Http协议。【文末:常见计算机协议】 TCP,英文全称...
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
TCP协议状态转换详解
、三次握手和四次挥手 1、建立连接(三次握手) (1)服务器会处于listen状态,客户端发送一个带SYN标志的TCP报文到服务器。 (2)服务器端回应客户端的请求,这是三次握手中的第2个报文,这个报文同时带SYN标志和ACK标志。 因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。 (3)客户必须再次...
4439



被折叠的 条评论
为什么被折叠?



