如何实现C#通过TCP协议从工业控制器以太网口读取数据?

问题描述

我是新手,想通过C#编写一个小程序,实现通过以太网口从工业控制器以太网读取数据。目前已知的信息是,我通过超级终端进行以下设置后(工业控制器的端口号设定与之相同),即可接收到来之工业控制器的数据。麻烦高手帮忙看看代码应该怎么写?谢谢

解决方案

解决方案二:
该回复于2016-07-02 00:01:49被版主删除
解决方案三:
如果超级终端可以,那么说明它是一个标准的telnet服务器端,你可以参考http://blog.csdn.net/foart/article/details/6833815
解决方案四:
谢谢版主,学习中...
解决方案五:
一个文本式的tcp通讯例子可以这样写usingSystem;usingSystem.IO;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Threading;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){ThreadPool.QueueUserWorkItem(h=>receive());ThreadPool.QueueUserWorkItem(h=>send());Console.WriteLine("..............................请按任意键退出");Console.ReadLine();}privatestaticvoidsend(){vars=newTcpListener(IPAddress.Any,port);s.Start();vara=s.AcceptTcpClient();using(varwf=newStreamWriter(a.GetStream())){wf.WriteLine("abc");wf.WriteLine("你好啊");wf.WriteLine("じ✿ゞ");}}privatestaticstringhost="127.0.0.1";privatestaticintport=1234;///<summary>///首先作为客户端连接,然后接收数据///</summary>privatestaticvoidreceive(){vars=newTcpClient(host,port);using(varr=newStreamReader(s.GetStream())){while(!r.EndOfStream){varmessage=r.ReadLine();Console.WriteLine(message);}}}}}

我们谈的是比较专业一点的开发。但是对于初学者,其实学的应该是这个。这就好像是幼儿园学的数学跟一个建筑工程师学的数学肯定是不一样的,幼儿园学的数学也是实用的,就像这里的程序也可以用来改一改就去应付。只不过这里的程序是有其适应场合、针对的人群的!
解决方案六:
这里,按照你的描述,发送信息方是服务器,而客户端则用来接收信息。这里只考虑单机对单机的通讯。
解决方案七:
虽然这是一个“幼儿园的”例子,但是说明了一些基本的底层概念:服务器要监听IPAddress.Any,服务器要等待客户端接入(AcceptTcpClient),服务器使用与客户端建立的连接(a)与之双向通讯(可写、也可读),对于支持文本协议的通讯可以使用最基础的StreamWriter、StreamReader来处理。客户端则必服务器端简单一些、更少一个环节。客户端在实例化时直接与服务器建立联系(s),然后对于支持文本协议的通讯可以使用最基础的StreamWriter、StreamReader来处理。其实这很简单。为什么有些代码很复杂?你自己想想。
解决方案八:
谢谢大家的回复,我还在慢慢消化中。可能我描述得不是很清楚,我再详细描述一下我的需求:●硬件:电脑1台、普通网线1根、工业控制器1台(比如:伺服驱动器)●背景:当工业控制器驱动伺服电机完成一个工作周期后(只知道伺服驱动器的IP地址和发送数据的端口号,不知道其内部数据发送机制),会产生相应的结果数据:扭矩、速度、角度等。已知通过超级终端(见初贴)可以读取到相应的结果数据,但不便于我二次处理。●需求:想自己写一个小程序,通过它去接收工业控制器的结果数据。拿到这个数据后,我再进行别的处理(比如让其显示在窗体应用程序中供操作工查看,这段代码我会写)这其实是一个工业场合的应用,我不知道如何写出接收数据的代码,还望大家指点迷津,或是给个思路或大体框架,我自己去琢磨。诚挚感谢~~
解决方案九:
在这个应用中,电脑只接收来之工业控制器的数据。
解决方案十:
以数台电脑作为载体的聊天软件,比如客户端和服务端的代码我会写。但在这个应用中,由于工业控制器是个死物,只是单纯的发送数据而已,除开可以修改ip和端口外,在通讯层面就没有可操作的地方了。不知道电脑和工业控制器(或者多台控制器)之间,谁是服务端,谁是客户端?

时间: 2024-08-18 03:37:09

如何实现C#通过TCP协议从工业控制器以太网口读取数据?的相关文章

深入浅出TCP协议的三次握手过程

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 每一次TCP连接都需要三个阶段:连接建立.数据传送和连接释放."三次握手"就发生在连接建立阶段. 1.三次握手(three times handshake) 所谓的"三次握手"即对每次发送的数据量跟踪进行协商使数据段的发送和接收同步,以及根据所接收到的数据量来确定数据发送.接收完毕后何时撤消联系,并建立虚连接. 第一次握手:主机A发送位码为syn=1,随机产生seq number

用C#实现基于TCP协议的网络通讯

网络 TCP协议是一个基本的网络协议,基本上所有的网络服务都是基于TCP协议的,如HTTP,FTP等等,所以要了解网络编程就必须了解基于TCP协议的编程.然而TCP协议是一个庞杂的体系,要彻底的弄清楚它的实现不是一天两天的功夫,所幸的是在.net framework环境下,我们不必要去追究TCP协议底层的实现,一样可以很方便的编写出基于TCP协议进行网络通讯的程序. 要进行基于TCP协议的网络通讯,首先必须建立同远程主机的连接,连接地址通常包括两部分--主机名和端口,如www.yesky.c

用C#实现基于用C#实现基于TCP协议的网络通讯

网络 TCP协议是一个基本的网络协议,基本上所有的网络服务都是基于TCP协议的,如HTTP,FTP等等,所以要了解网络编程就必须了解基于TCP协议的编程.然而TCP协议是一个庞杂的体系,要彻底的弄清楚它的实现不是一天两天的功夫,所幸的是在.net framework环境下,我们不必要去追究TCP协议底层的实现,一样可以很方便的编写出基于TCP协议进行网络通讯的程序. 要进行基于TCP协议的网络通讯,首先必须建立同远程主机的连接,连接地址通常包括两部分--主机名和端口,如www.yesky.c

monkeysocks开发日志:TCP协议分析及架构规划

jsocks的改造 首先对公司一个项目进行了代理,测试结果:从开始启动到完成,只有4.7M的网络流量,本地空间开销不是问题. 今天把jsocks修改了下,将build工具换成了maven,并独立成了项目https://github.com/code4craft/jsocks.后来算是把record和replay功能做完了,开始研究各种协议replay的可能性. replay时候,如何知道哪个请求对应响应包是个大问题.开始的方式是把request报文的md5作为key,response作为valu

系统-Solaris中如何把一个端口的tcp协议打开?

问题描述 Solaris中如何把一个端口的tcp协议打开? 在Solaris系统中,通过socket传输文件,提示文件传输失败,这个应该是对应的socket端口的tcp协议没有打开.

winsock-如何在本地测试Server/Client程序,UDP和TCP协议,本地需要在命令行测试还是在哪里测试

问题描述 如何在本地测试Server/Client程序,UDP和TCP协议,本地需要在命令行测试还是在哪里测试 写好的程序怎么测试通信是否正常,如何在本地测试Server/Client程序,UDP和TCP协议,本地需要在命令行测试还是在哪里测试 解决方案 可以用命令行执行服务端和客户端,然后打印输出,也可以在局域网内,一台机器跑服务端,一台跑客户端 解决方案二: 直接将客户端和服务器端运行起来,测试下就可以了.

大型分布式网站架构设计与实践 第一章《面向服务的体系架构(SOA)》1.1基于TCP协议的RPC

1.1基于TCP协议的RPC 1.1.1RPC名词理解 RPC的全称是Remote Process Call,即远程过程调用,它应用广泛,实现方式也很多,拥有RMI,WebService等诸多成熟的方案,在业界得到了广泛的应用.单台服务器的处理能力受硬件成本的限制,不可能无限制的提升,RPC将原来的本地调用转变为调用远端的服务器上的方法,给系统的处理能力和吞吐量带来了近乎无限制的提升,这是系统发展到一定阶段必然性的改革,也是实现分布式计算的基础. 如图1-2所示,RPC的实现包括客户端和服务端,

c++-如何用重写TCP协议,或者修改ws2_32.dll文件

问题描述 如何用重写TCP协议,或者修改ws2_32.dll文件 做通信专业本科毕业设计,老师希望建立卫星通信的仿真演示系统.其中比较重要的是进行不同传输协议的比较.由于空间环境不能使用地面TCP,要改用空间TCP或其他传输协议.可能是要修改电脑的网络传输相关的库文件,根本不会!求救!! 另外,前期利用MFC完成了大部分的演示工作. 解决方案 可以使用raw sockethttp://blog.csdn.net/kzm2008/article/details/5372834 解决方案二: 建议你

客户端通信-TCP协议通信中,两个客户端之间是如何进行通信的

问题描述 TCP协议通信中,两个客户端之间是如何进行通信的 我现在在学习JAVA的网络编程,我想实现一个类似于QQ那样的通信软件,但是我不知道客户端与客户端之间是怎么通信,他们是通过一个服务端来进行通信的吗,例如:客户端A想跟客户端B通信,需要客户端A先跟服务端C通信,然后再通过服务端C与客户端B通信,是这样吗? 解决方案 对的A将信息发给C,C在socket表中查找之前C与B的socket,然后根据这个socket,把信息转发给B