广告
淘宝内部优惠券
当前位置: 开发异常方案库» .NET技术 » 如何让c/s和b/s架构下都访问同一服务器,即web浏览器和客户端程序都可以访问服务器

如何让c/s和b/s架构下都访问同一服务器,即web浏览器和客户端程序都可以访问服务器

开发异常方案库  收集整理于:2020-05-08 15:07:00  浏览:66次
   我有以下需求:            1、服务器上部署一个【非常简单】的服务器程序,采用C/S架构,使用C#的Listener 类编写TCP通信。            2、另外服务器上再部署一个【非常简单】的WEB 浏览器程序,使用HttpListener 类编写。            3、目的是:服务器可以采集客户端的数据,然后将数据存入到MYSQL数据库,同时服务器还支持维护人员通过电脑,使用浏览器访问MYSQL数据库。      问题是:              这2个程序都在一个服务器上,都要使用IP地址和端口号建立TCP连接,但是由于他们同时在一台服务器上,因此IP地址和端口号必然相同,同时运行必然会产生冲突,如何解决呢?

------网友观点--------------------
哎,无论怎么说你都不听。 你一定要这么问,我敢保证他们一准还是你继不想挺也不想看的asp.net mvc core+dotnetty 或者asp.net mvc+webservice 或者asp.net mvc+wcf 或者 控制台+owin self host+dotnetty 或者 控制台+nancy+dotetty 上次就说了,先确定你要做什么,搞清楚1+1在来问 那个兄弟在那死杠,大然然你自己看你死杠的结果。他这玩意从2月问到了五一,半年了他依然弄不清从那里开始。

------网友观点--------------------
你一定要纠结你那个,也行。 你觉着那是技术ok,没问题。答案是,开两端口 当然请准备好做1年 dotnetty没出来以前,国内那个supersoket做了5年,还有bug,另外一家做了7年卖6w一套 但是还是那句话,你觉得是技术ok,只不过是10年前的技术,我们也告诉你了,如今做你这个不怎么写代码用2星期,就可以达到k级并发,实时计算,酷炫展示,所以你觉着那是技术的东西如今只卖2k

------网友观点--------------------
说他不是技术呢,因为其实就一个端口也行 asp.mvc+asp mvc webapi 依然可以 你另外一端直接用httpclient 使用webapi提交给服务器也行 比如上次说Mqtt就是典型,自己有http提供ui,也有webapi提供方法,更有websocet提供方法

------网友观点--------------------
端口可以不相同。。

------网友观点--------------------
没有问题,服务器侦听两个不同的端口,然后建立TCP队列,这些需要自己写程序

------网友观点--------------------
引用 1 楼 wanghui0380 的回复:
哎,无论怎么说你都不听。 你一定要这么问,我敢保证他们一准还是你继不想挺也不想看的asp.net mvc core+dotnetty 或者asp.net mvc+webservice 或者asp.net mvc+wcf 或者 控制台+owin self host+dotnetty 或者 控制台+nancy+dotetty 上次就说了,先确定你要做什么,搞清楚1+1在来问 那个兄弟在那死杠,大然然你自己看你死杠的结果。他这玩意从2月问到了五一,半年了他依然弄不清从那里开始。
       1、兄弟,谢谢啦!第一次接触这方面的知识,确实有点不知所措。        2、搞这个没有任何购买设备和购买软件的经费        3、你讲的这些 asp.net mvc+webservice,asp.net mvc+wcf,owin self host+dotnetty,nancy+dotetty 我名字都没有听说过,让我怎么搞呀!555        4、现在只是技术储备期间,当领导需要时,会要求你最多1个半月内完成。        5、最重要的一点,还要提交软件源代码。        6、现场设备做客户端和服务器通信,根本就不需要MQTT协议,我的方案是单片机内集成一个EC20芯片(4G流量芯片),用流量和服务器进行TCP通信,通信协议使用自定义协议,这个我已经搞得很成熟了。               为什么要用4G流量进行TCP通信,因为现场根本就没有WIFI信号覆盖。       

------网友观点--------------------
这样把,最快完成 1.vs2017 安装 net core 2.1 或 net core 3(个人建议net core2.1,主要是3的库很多还木跟上) 2.新建项目-------net core--选择aps.net core web应用程序---------选择模型视图控制器(主要是为了兼容webapi,假设你后期需要webapi) 3 此处有两个分支  a.直接在webhost里开启websocket支持,这个无需做什么,本身内建支持,你的客户端可以直接用websocket通讯  b 使用nuget引入dotnetty,在mian里加入代码直接启用tcp支持(有关如何使用dotnetty我就不讲了,网上大把) 最后发布采用独立发布,直接脱离iis。把程序放到开机启动项目里。(注意安装net core环境,配置服务器防火墙,卸掉360--哎360对于服务器来说实际是个祸害)

------网友观点--------------------
引用 7 楼 wanghui0380 的回复:
这样把,最快完成 1.vs2017 安装 net core 2.1 或 net core 3(个人建议net core2.1,主要是3的库很多还木跟上) 2.新建项目-------net core--选择aps.net core web应用程序---------选择模型视图控制器(主要是为了兼容webapi,假设你后期需要webapi) 3 此处有两个分支  a.直接在webhost里开启websocket支持,这个无需做什么,本身内建支持,你的客户端可以直接用websocket通讯  b 使用nuget引入dotnetty,在mian里加入代码直接启用tcp支持(有关如何使用dotnetty我就不讲了,网上大把) 最后发布采用独立发布,直接脱离iis。把程序放到开机启动项目里。(注意安装net core环境,配置服务器防火墙,卸掉360--哎360对于服务器来说实际是个祸害)
      谢谢啦!大侠。       大侠:                  第一、在办公场所的电脑上用浏览器访问【服务器】上的WEB页面不是随时访问,而是一个星期访问一次,【服务器】上跑的WEB SERVER 程序是否可以不必考虑【并发】?                  第二、【服务器】上跑的C/S架构的TCP SERVER 程序读取的客户端只是一些单片机设备,单片机设备数量不是很多,也就10来个,每隔10分钟给服务器发送一帧报文,TCP SERVER 程序程序是否也可以不必考虑【并发】?                 第三、领导说搞东西不需要把框架搞的高大上,方方面面都考虑清楚(例如:以后的可扩展性),领导说只需要满足现在的实际要求即可,即:【程序可以稳定可靠的运行就行啦!】,至于可扩展性,不考虑,                 第四、WEB SERVER 程序网上有很多例程,用HttpListener 类编写程序,有什么问题呢?                           第五、TCP SERVER 程序网上有很多例程,用Listener 类编写程序,使用Listener 类的异步接收有什么问题呢?                 第六、最重要的是【时间要快】                                                 我就是一个C#小白,我只能通过看网上的资料学习C#知识,工作之余还要搞工作,只能业余时间学习C#。很多框架编程模式和思路确实相对于我来说太高大尚了。                                                                     打个比方,让一个用C语言只编写过面向过程的程序员(就是俗称的前后台编程),突然有一天你让他用RTOS(实时操作系统)编程模式(就是任务级编程),那不是要让人崩溃吗?                       用C语言进行前后台编程和使用C语言进行uCOSII或uCOSIII或 FreeRTOS操作系统下进行任务级编程简简直是一个天上,一个地下,完全不同的设计思路,光是熟悉uCOSII或uCOSIII或 FreeRTOS操作系统本身至少要半年业余时间,要想熟练运用uCOSII或uCOSIII或 FreeRTOS操作系统的知识点进行单片机程序设计没有半年高强度的实战是不可能胜任的,什么信号量、互斥信号量、消息队列、消息邮箱、任务划分、任务优先级、堆栈尺寸、延时节拍的选择等等都会影响到系统稳定的运行,没有一定的积累确实搞不好。

------网友观点--------------------
知道你的意思,不过你属于怎么劝都不听的人。 我们也不想劝了,你随意把。 只说最后两句: HttpListener:网上有很多啊,对网上有很多,但是你看你查的所有资料的时间,看看离今天有多少年。你打算整个http协议解析自己来?整个httpcontext自己来,整个response,reqeust自己来? TcpListener:一样的道理,整个msdn其实就一个IOCP例程,整个例子还是一个最原始版本,离实际使用还差几w米。上面我说那个supersocket就是在整个例程上完成的,花了5年 你口口声声我不要框架,我要简单。但是你实际做的事情是,我就是要自己研究技术,我就是要准备搞个1年半载 

------网友观点--------------------
你一直认为那些东西是技术,但是我们说那都不是技术。花再多时间都不是技术。那只是个纯体力活,开一个监听就几句话是技术么? reposne。write一个html文本是技术么? 30年前cgi就这么玩的,不是技术,纯粹体力活。所以cgi才消亡了,因为没有技术,纯体力。大量时间被消耗在不需要消耗的地方,没办法体现程序员的价值

------网友观点--------------------
引用 9 楼 wanghui0380 的回复:
知道你的意思,不过你属于怎么劝都不听的人。 我们也不想劝了,你随意把。 只说最后两句: HttpListener:网上有很多啊,对网上有很多,但是你看你查的所有资料的时间,看看离今天有多少年。你打算整个http协议解析自己来?整个httpcontext自己来,整个response,reqeust自己来? TcpListener:一样的道理,整个msdn其实就一个IOCP例程,整个例子还是一个最原始版本,离实际使用还差几w米。上面我说那个supersocket就是在整个例程上完成的,花了5年 你口口声声我不要框架,我要简单。但是你实际做的事情是,我就是要自己研究技术,我就是要准备搞个1年半载 
     谢谢大侠相劝。                我以为用网上别人的现成源代码,稍微改动一下,就可以搞出【特别简单】【运行稳定和可靠】的TCPSERVER和WEBSERVER,难道搞一个特别简单的TCPSERVER和WEBSERVER真的很难吗?            1、 用dotnetty框架可以分别搭建TCPSERVER和WEBSERVER吗?             2、用dotnetty框架做很容易吗(我不清楚,以为很难)?                 请赐教!

------网友观点--------------------
https://www.cnblogs.com/victorbu/p/10371056.html 既然你对硬件熟悉,那我们就拿硬件的最常见协议,modubs做例子,这里就是别人已经写好的mobus tcp协议的完整实现 这是第4章节,就是服务器端和客户端的例子,这个例子其实也不用看,因为这就是官网的标准demo,唯一修改的部分只是这3句话
pipeline.AddLast("encoder", new ModbusEncoder());
					pipeline.AddLast("decoder", new ModbusDecoder(false));
					pipeline.AddLast(handlerName, new ModbusResponseHandler());
告诉服务器通讯使用mobus协议解析,把最后的结果发到 ModbusResponseHandle类去 因为官方编解码器没有modbus,所以他前4章只是按照官方标准,写了一个编解码器。(当然,这是他自己写的) 但是实际上nuget上基于dotnetty的mobus编解码器多是很。 so,你可以直接用nuget的编解码器,so,你要求快速完成。这还不够快,这些代码copy了就能用 当然你说webserver其实用他也可以完成,但是我们不建议。同样微软给你了owin self host,也给你了asp.net core,这部分依旧不需要你写,上面说了 1.vs2017 安装 net core 2.1 或 net core 3(个人建议net core2.1,主要是3的库很多还木跟上) 2.新建项目-------net core--选择aps.net core web应用程序---------选择模型视图控制器(主要是为了兼容webapi,假设你后期需要webapi) 到这里就已经完成了,你运行看,已经有个欢迎页告诉你,我已经完成了webserver了

------网友观点--------------------
        就像我搞Android APP,领导要求时间要快,功能简单、运行稳定、可靠、满足要求即可。说实在的,之前从没有接触过JAVA和Android,没办法呀!领导要求快,功能简单,就在网上补知识(也没有时间系统的学习JAVA和Android),前后花费了1个半月搞定,功能很简单,就是手机APP做MODBUS主站,单片机做MODBUS从站。                     编写MODBUS主站我轻车熟路,主站代码+队列即可。           困难的是我不熟悉Android,二眼一摸黑呀!现在想起,也没有什么,就是熟悉一下XML脚本,通过消息更新主线程上的UI控件显示,启动一个定时工作的线程定时发送MODBUS主站报文,在接收事件中解析MODBUS从站报文即可。           说白了,学习Android,就会了以下4点:特别简单的XML语法,知道了定时工作的线程如何创建,定时工作的线程如何使用,知道了更新主线程上的UI控件需要通过消息循环更新,Android其它知识啥也不懂,领导说不错,满足公司要求就行啦!           网上找了一个特别简单的程序,在该程序的基础上增加了   定时工作的线程,增加了MODBUS主站代码和队列代码就搞定了。 领导希望我搞C#  TCPSERVER和WEBSERVER也是如此高效。   

------网友观点--------------------
https://github.com/SmallChi/JT808Gateway 同样这是俺们国人放的一个项目,你玩硬件应该知道这个j808是啥。这伙计搞得宽,mqtt,tcp,udp,webapi,rabimitmq,kafka都用dotnetty实现了一边,真的很有闲功夫啊

------网友观点--------------------
引用 14 楼 wanghui0380 的回复:
https://github.com/SmallChi/JT808Gateway 同样这是俺们国人放的一个项目,你玩硬件应该知道这个j808是啥。这伙计搞得宽,mqtt,tcp,udp,webapi,rabimitmq,kafka都用dotnetty实现了一边,真的很有闲功夫啊
           请问:大侠是搞哪一块的呢?
引用 12 楼 wanghui0380 的回复:
https://www.cnblogs.com/victorbu/p/10371056.html 既然你对硬件熟悉,那我们就拿硬件的最常见协议,modubs做例子,这里就是别人已经写好的mobus tcp协议的完整实现 这是第4章节,就是服务器端和客户端的例子,这个例子其实也不用看,因为这就是官网的标准demo,唯一修改的部分只是这3句话
pipeline.AddLast("encoder", new ModbusEncoder());
					pipeline.AddLast("decoder", new ModbusDecoder(false));
					pipeline.AddLast(handlerName, new ModbusResponseHandler());
告诉服务器通讯使用mobus协议解析,把最后的结果发到 ModbusResponseHandle类去 因为官方编解码器没有modbus,所以他前4章只是按照官方标准,写了一个编解码器。(当然,这是他自己写的) 但是实际上nuget上基于dotnetty的mobus编解码器多是很。 so,你可以直接用nuget的编解码器,so,你要求快速完成。这还不够快,这些代码copy了就能用 当然你说webserver其实用他也可以完成,但是我们不建议。同样微软给你了owin self host,也给你了asp.net core,这部分依旧不需要你写,上面说了 1.vs2017 安装 net core 2.1 或 net core 3(个人建议net core2.1,主要是3的库很多还木跟上) 2.新建项目-------net core--选择aps.net core web应用程序---------选择模型视图控制器(主要是为了兼容webapi,假设你后期需要webapi) 到这里就已经完成了,你运行看,已经有个欢迎页告诉你,我已经完成了webserver了
  大侠,太感谢啦!

------网友观点--------------------
使用 webservice 或 webapi    你客户端 连接  完全可以不使用 tcp通讯了呀.....      如果客户端只能通过tcp 通讯  服务端的tcp server程序 与 webservice或 webapi 是没有任何冲突的 bs的服务端是挂在IIS上的 tcpserver 是单独的程序 或 加载系统服务 还有个技术叫 websocket  也可以参考一下 比自己写tcpserver 简单点吧?  自己写server段  肯定要考虑的几点 就是 线程 协议 报文 并发 线程锁 等等 如果有成熟的代码 或者经验 那还行, 如果从头开发测试 有你测试的......

------网友观点--------------------
C#网络编程TCP通信实例程序简单设计     https://www.cnblogs.com/JiYF/p/6699104.html   我测试过,运行比较稳定,采用异步接收通信。

------网友观点--------------------
属于C/S架构。

------网友观点--------------------
1.那个东西人家花了多少功夫去做你不知道。 2.接收消息很困难么?你自己开个监听,接收消息回显很困难么?不困难微软msdn那个iocp 20年前就放在那里了 问题不在这里,问题再协议上。已经说了很多遍了,你认为的技术,不是技术。IOCP的代码已经放在Msdn上20年了。 问题他这个代码能解析modbus么?他这个代码能解析At指令么?他这个代码能解析西门子S7么? 所以dotnetty,suppersokcet的核心是并发,内存不要你管,你就管怎么解析指令,这才是俺们能用的。光一个收发有啥用啊,我们又不是要写个串口调试工具

------网友观点--------------------
加Nginx代理, 监听80口,你自己的程序开其他的2个不同端口。 在nginx里面接收数据 判断是http和tcp你自己的协议。 然后转发到你对应的后面的2个服务上。 这样就是麻烦,需要写c++的niginx的数据处理代码挂进去。

------网友观点--------------------
其实同样的 IP 同样的端口,未必就会发生冲突。 我们在用浏览器查看网页的时候,访问的都是服务器的 80 端口,但是服务器依然可以区别我们每一个用户,靠的就是每一次请求的时候都把 cookies 的信息发送过去。 你也可以参照浏览器的这种机制,这样访问同一个端口的时候,就不会发生你所说的冲突了。

------网友观点--------------------
端口可以不相同。。

------网友观点--------------------
表示遇到过同样问题

------网友观点--------------------
大佬说的方式固然好,但是需要大量时间学习,同一个服务器部署几个服务再正常不过了。防火墙把相关的非标端口开开就行了。 你的需求两个,一个TCPService,这个NUGET找找别人封装好的包,基本几行代码就能搞定了,自己定义一个端口比如 8001 还有一个网站,这个看你功能复杂度了,不好说,简单的增删改查,直接用EF等DAO把数据读出来就行了,用IIS承载,用80口。 如果我说的这些你也搞不清楚,还是外包吧,花不了几个钱,要求提供源码

------网友观点--------------------
引用 25 楼 assky124 的回复:
大佬说的方式固然好,但是需要大量时间学习,同一个服务器部署几个服务再正常不过了。防火墙把相关的非标端口开开就行了。 你的需求两个,一个TCPService,这个NUGET找找别人封装好的包,基本几行代码就能搞定了,自己定义一个端口比如 8001 还有一个网站,这个看你功能复杂度了,不好说,简单的增删改查,直接用EF等DAO把数据读出来就行了,用IIS承载,用80口。 如果我说的这些你也搞不清楚,还是外包吧,花不了几个钱,要求提供源码
关键是他不会理你的,他非要玩那种技术。别人帮不了的 如果说最简单实现,在他之前的N个帖子已经回复了,他还需要什么tcp么。客户端接到下位机数据,直接远程写入mysql就行。剩下的也说过了从mysql读数据做个展示网站根本就不是什么事情。(要不讲究美观和漂亮,请个没毕业的学生1个星期也给你搞了)

------网友观点--------------------
就是他说他的客户端不能上网都没关系,写道本地服务器数据库(分发复制也好,用mysql黑洞引擎也罢),让本地服务器代理到远端mysql也行(只要本地服务器能上网)

------网友观点--------------------
整个项目在最早的帖子都说过了,他唯一需要的做的事情,就是把数据发出去。剩下的都不是他要操心的东西 你要类比滴滴的化,也就是他唯一要的一件事情就是,每30秒把定位消息发出去。无论滴滴后面怎么折腾,都是后面的事情,和他要做的事情已经没关系了

------网友观点--------------------
大家无法沟通,主要是在于楼主是搞硬件的,而这个论坛是搞软件的,大家相互不太能理解。 因为楼主要通讯的是硬件设备,所以http,websocket什么的协议,太高级了,硬件处理起来并不容易,选用tcp这种底层协议是有必要的。 我的建议是: 1、服务器上部署一个【非常简单】的服务器程序,采用C/S架构,使用C#的Listener 类编写TCP通信。可以的            2、另外服务器上再部署一个【非常简单】的WEB 浏览器程序,使用HttpListener 类编写。什么HttpListener,这是楼主不懂web开发,假想的。什么HttpListener,这东西老早被框架包装起来了,不用你考虑这些。            3、目的是:服务器可以采集客户端的数据,然后将数据存入到MYSQL数据库,同时服务器还支持维护人员通过电脑,使用浏览器访问MYSQL数据库。这不就是个简单网页,写个小web程序就可以了,随便采用什么web架构都行。      问题是:              这2个程序都在一个服务器上,都要使用IP地址和端口号建立TCP连接,但是由于他们同时在一台服务器上,因此IP地址和端口号必然相同,同时运行必然会产生冲突,如何解决呢?ip相同正常,端口可以不一样啊。并没有问题。

------网友观点--------------------
引用 29 楼 圣殿骑士18 的回复:
大家无法沟通,主要是在于楼主是搞硬件的,而这个论坛是搞软件的,大家相互不太能理解。 因为楼主要通讯的是硬件设备,所以http,websocket什么的协议,太高级了,硬件处理起来并不容易,选用tcp这种底层协议是有必要的。 我的建议是: 1、服务器上部署一个【非常简单】的服务器程序,采用C/S架构,使用C#的Listener 类编写TCP通信。可以的            2、另外服务器上再部署一个【非常简单】的WEB 浏览器程序,使用HttpListener 类编写。什么HttpListener,这是楼主不懂web开发,假想的。什么HttpListener,这东西老早被框架包装起来了,不用你考虑这些。            3、目的是:服务器可以采集客户端的数据,然后将数据存入到MYSQL数据库,同时服务器还支持维护人员通过电脑,使用浏览器访问MYSQL数据库。这不就是个简单网页,写个小web程序就可以了,随便采用什么web架构都行。      问题是:              这2个程序都在一个服务器上,都要使用IP地址和端口号建立TCP连接,但是由于他们同时在一台服务器上,因此IP地址和端口号必然相同,同时运行必然会产生冲突,如何解决呢?ip相同正常,端口可以不一样啊。并没有问题。
    谢谢楼上,说出我的心里话。      我是搞嵌入式开发的,去年利用业余时间接触了一个月的C#,今年3月底又利用业余时间接触了一个多星期,说实在的,很多名词都没有听说过,你们搞纯软件的认为三下五除二就可搞定,但是我却打不到方向,WEB SERVER等名词都是3月底才知道的。      所以的高手搞好的框架让我用,可能比登天还难,我根本就不敢用呀,因为根本就打不到方向,这是事实。

------网友观点--------------------
我觉得不管他是搞硬件的还是搞软件的,就他这个需求不管是WebService也好,WebApi也好,http post也好,还是WCF也好,这些服务都是既可以WEB调用也可以winform调用的,从这里下手很容易,也非常简单,根据他的目前状况还是推荐WebService.对于他来说,只有一点,放弃自己对于Listener HttpListener的执念,用现在的技术就好.既然搞过软件,网上看看例子,只要环境打起来,纯代码的东西难道说1天搞不定???
引用 29 楼 圣殿骑士18 的回复:
大家无法沟通,主要是在于楼主是搞硬件的,而这个论坛是搞软件的,大家相互不太能理解。 因为楼主要通讯的是硬件设备,所以http,websocket什么的协议,太高级了,硬件处理起来并不容易,选用tcp这种底层协议是有必要的。 我的建议是: 1、服务器上部署一个【非常简单】的服务器程序,采用C/S架构,使用C#的Listener 类编写TCP通信。可以的            2、另外服务器上再部署一个【非常简单】的WEB 浏览器程序,使用HttpListener 类编写。什么HttpListener,这是楼主不懂web开发,假想的。什么HttpListener,这东西老早被框架包装起来了,不用你考虑这些。            3、目的是:服务器可以采集客户端的数据,然后将数据存入到MYSQL数据库,同时服务器还支持维护人员通过电脑,使用浏览器访问MYSQL数据库。这不就是个简单网页,写个小web程序就可以了,随便采用什么web架构都行。      问题是:              这2个程序都在一个服务器上,都要使用IP地址和端口号建立TCP连接,但是由于他们同时在一台服务器上,因此IP地址和端口号必然相同,同时运行必然会产生冲突,如何解决呢?ip相同正常,端口可以不一样啊。并没有问题。

------网友观点--------------------
引用 31 楼 yuandonghuia 的回复:
我觉得不管他是搞硬件的还是搞软件的,就他这个需求不管是WebService也好,WebApi也好,http post也好,还是WCF也好,这些服务都是既可以WEB调用也可以winform调用的,从这里下手很容易,也非常简单,根据他的目前状况还是推荐WebService.对于他来说,只有一点,放弃自己对于Listener HttpListener的执念,用现在的技术就好.既然搞过软件,网上看看例子,只要环境打起来,纯代码的东西难道说1天搞不定???
Quote: 引用 29 楼 圣殿骑士18 的回复:
大家无法沟通,主要是在于楼主是搞硬件的,而这个论坛是搞软件的,大家相互不太能理解。 因为楼主要通讯的是硬件设备,所以http,websocket什么的协议,太高级了,硬件处理起来并不容易,选用tcp这种底层协议是有必要的。 我的建议是: 1、服务器上部署一个【非常简单】的服务器程序,采用C/S架构,使用C#的Listener 类编写TCP通信。可以的            2、另外服务器上再部署一个【非常简单】的WEB 浏览器程序,使用HttpListener 类编写。什么HttpListener,这是楼主不懂web开发,假想的。什么HttpListener,这东西老早被框架包装起来了,不用你考虑这些。            3、目的是:服务器可以采集客户端的数据,然后将数据存入到MYSQL数据库,同时服务器还支持维护人员通过电脑,使用浏览器访问MYSQL数据库。这不就是个简单网页,写个小web程序就可以了,随便采用什么web架构都行。      问题是:              这2个程序都在一个服务器上,都要使用IP地址和端口号建立TCP连接,但是由于他们同时在一台服务器上,因此IP地址和端口号必然相同,同时运行必然会产生冲突,如何解决呢?ip相同正常,端口可以不一样啊。并没有问题。
你这就是不懂硬件下提的建议了。为什么我能理解他,因为我现在和硬件工程师在深入合作。硬件芯片是无法解析webservice这么复杂的协议的。所以才需要tcp。硬件层面上,通讯协议,一般都是tcp,udp,uart,i2c,spi这些。

------网友观点--------------------
引用
你这就是不懂硬件下提的建议了。为什么我能理解他,因为我现在和硬件工程师在深入合作。硬件芯片是无法解析webservice这么复杂的协议的。所以才需要tcp。硬件层面上,通讯协议,一般都是tcp,udp,uart,i2c,spi这些。
不必解释,其实把。最近4年的新设备都是采用新方式完成的 比如某家品牌的红外产品是thift的,比如新的物联网芯片是mqtt的 就算是老古董,webserice也不是他们不能理解的。你家的路由器古老把,他的协议是什么啊。ssdp啊。ssdp又是啥?udp+webservice啊 我们前面之所以反对他那么做,原因很简单。他觉着那些是技术,未来可期。甚至他会说我做了一个app如何,他觉着那也是技术。问题我们都知道啊,普通app已经沦为小工级别了,那些已经不是5年前刚毕业的人就喊15-20的年代了,现在就是已经有5年经验但是也就那样的人8-13都难保障------------现实而已,我已经看到有号称10年的app经验的人黯然离场了 如果他真想当未来的傍身的技术,他应该接受变革。

------网友观点--------------------
看了下楼主的需求,十来个单片机设备而已,就玩玩的水平完全可以用TcpListener就解决了,但并发还是要做的,每个设备的连接都是独立的保存起来。展示数据的Web直接写个webform部署到IIS上就行了

------网友观点--------------------
我也看到了号称10年的主管级大拿的硬件黯然离场了 因为他无法接收新人们用ROS+Mqtt 2月就把他以前要干2年的活给干了

------网友观点--------------------
引用 35 楼 wanghui0380 的回复:
我也看到了号称10年的主管级大拿的硬件黯然离场了 因为他无法接收新人们用ROS+Mqtt 2月就把他以前要干2年的活给干了
是的,做硬件的也要与时俱进。我也看到我行业中,同样的系统,IP方案的开发效率是光传方案的数倍,系统的开发难度大大降低。

------网友观点--------------------
引用 10 楼 wanghui0380 的回复:
你一直认为那些东西是技术,但是我们说那都不是技术。花再多时间都不是技术。那只是个纯体力活,开一个监听就几句话是技术么? reposne。write一个html文本是技术么? 30年前cgi就这么玩的,不是技术,纯粹体力活。所以cgi才消亡了,因为没有技术,纯体力。大量时间被消耗在不需要消耗的地方,没办法体现程序员的价值
和这位大佬说的类似,我自己一个小软件也是差不多方式处理,服务器端就是response.write下,winform接受后处理。 楼主,我也是自学c#,太复杂的不会,比如udp、 tcp通信,webservice都没搞过,我自己用山寨思路做的,不知道是否明确看懂你的需求,我自己的大概如下: 我要实现的是winform登录后,webrequest一条带参url到服务器校验客户端是否通过认证可否登录、客户端程序及数据库是否是最新版本; 服务器端是 asp.net,接收后判断并写入数据库然后response.write对应数据(如上面大佬说的那样),winform获取后进行对应操作。不会webservice 各种通信协议……就是简单的提交信息并处理 另外写了一个简单的winform这个不给客户,自己用于简单维护服务器端的信息(其实就是简单的读写删改云端数据库里面的记录),可能老鸟看到我说的这些不屑一顾,代码一看直接摇头,目前为止用了有9年多了稳定运行 这样不需要考虑端口号啥的问题,唯独就是要保证客户端网络通畅,我自己设计的是客户端离线状态自动退出,可能还是 有局限性,但是我自己的客户的应用场景都是必须要联网也就不存在问题了

------网友观点--------------------
我想这个netcore2.0以上应该能轻易实现吧。先建立一个razor项目(b/s),再添加客户端类库。再添加netstand类库,C/s架构的Listener类及侦听传递方法放里面,还可以添加相应接口,B端,c端都可以用。发布应该就都在一起。

------网友观点--------------------
引用 38 楼 jhonsonzhang 的回复:
我想这个netcore2.0以上应该能轻易实现吧。先建立一个razor项目(b/s),再添加客户端类库。再添加netstand类库,C/s架构的Listener类及侦听传递方法放里面,还可以添加相应接口,B端,c端都可以用。发布应该就都在一起。
    谢谢!

------网友观点--------------------
ASP.NET WebFrom 使用C# 连接 MySql     https://blog.csdn.net/ba_wang_mao/article/details/105924354 asp.net web项目连接mysql数据库              https://blog.csdn.net/ba_wang_mao/article/details/105924423 ASP.NET连接MySQL数据库                         https://blog.csdn.net/ba_wang_mao/article/details/105924587

------网友观点--------------------
今天想搞WEB 页面,打开VISUAL STUDIO 一下傻眼啦!哪么多新名词都没有见过,怎么办呀!    (1)、 .NET CORE  和 .NET STANDARD 和 .NET FRAMWORK不知道区别是什么,看了网上的介绍也是一头雾水     (2)、进入 .NET CORE 发现 又有MVC、 WEB API、WEB 窗体    ,看来C#想入门需要时间泡呀!               ASP.NET MVC与ASP.NET Web API的区别 MVC主要用来构建网站,既关心数据也关心页面展示,而Web API只关注数据 Web API支持格式协商,客户端可以通过Accept header通知服务器期望的格式 Web API支持Self Host,MVC目前不支持 Web API通过不同的http verb表达不同的动作(CRUD),MVC则通过Action名字表达动作 Web API内建于ASP.NET System.Web.Http命名空间下,MVC位于System.Web.Mvc命名空间下,因此model binding/filter/routing等功能有所不同 Web API非常适合构建移动客户端服务       

------网友观点--------------------
这么简单的问题,有必要讨论那么多层楼?

------网友观点--------------------
引用 42 楼 失足成万古风流人物 的回复:
这么简单的问题,有必要讨论那么多层楼?
   你说的太对啦!
发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。
软件开发 程序错误 异常 ybaby.netCopyright © 2020-2026  ybaby 版权所有  桂ICP备17004385号-2 网站地图