asp.net web 如何实现socket

shmily895 2009-04-12 01:02:09
如题,打算做一个工业控制的网页,当用户在浏览器页面上点击一个按钮,(如启动一台设备),WEB服务器在收到这个命令后,使用TCP/IP socket将命令转发给另一台计算机(B),B计算机上建立一个TCP/IP的客户端。接到命令后执行指定的操作并返回执行结果给WEB服务器。web服务器再发送给用户浏览器。请教大家能不能实现?如何实现,ASP.NET能不能直接引用SYSTEM.NET中的SOCKET类??,也可以提出其他的解决方案。
...全文
840 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljx830526 2011-12-15
  • 打赏
  • 举报
回复
我没看明白能不能解释一下,楼主你做出来了吗?
together 2011-07-06
  • 打赏
  • 举报
回复
正要做相同的事情,看看
jiaxianran 2011-06-22
  • 打赏
  • 举报
回复
我做过这个的一部分,web服务器是可以用.net的socket与工业控制端的socket通信的,比如说工业控制端的socket是用VC++6.0编写的,也可以。只要它们都遵循TCP/IP协议或者UDP协议。至于工业控制端实时数据的返回,这个我也正在研究,可以用Ajax来做。
benbenkui 2009-04-26
  • 打赏
  • 举报
回复
看来楼主没有理解SP1234的意思,不要让自己狭隘的思路去将需求复杂化.
你说的这个问题,我做过一个类似的.WEB需要做的工作是触发这个动作,和接收一个结果,具体的应用和你的WEB是没有任何关系的.
igelf 2009-04-12
  • 打赏
  • 举报
回复
mark
  • 打赏
  • 举报
回复
另外,使用.net技术比较流行的开发应该方式是:工业控制服务公开一个WCF服务,然后web服务器访问这个工业控制服务器的WCF功能,完成你描述的功能。

你可以在工业控制服务器上配置只有这个web服务器才能访问此WCF服务组件,这样可以简化权限控制。
  • 打赏
  • 举报
回复
[Quote=引用楼主 shmily895 的帖子:]
如题,打算做一个工业控制的网页,当用户在浏览器页面上点击一个按钮,(如启动一台设备),WEB服务器在收到这个命令后,使用TCP/IP socket将命令转发给另一台计算机(B),B计算机上建立一个TCP/IP的客户端。接到命令后执行指定的操作并返回执行结果给WEB服务器。web服务器再发送给用户浏览器。请教大家能不能实现?如何实现,ASP.NET能不能直接引用SYSTEM.NET中的SOCKET类??,也可以提出其他的解决方案。
[/Quote]

可以,任何知道一点socket编程的人都可以,跟你使用console、WinForm编程时使用socket没有什么区别。

不过你描述中有一个错误,这使得你逻辑上看起来混乱。在这个逻辑中,B是Socket服务器而不是客户端,实际上web网站以至于web页面也不过是个控制台显示操作功能,核心的业务功能应该是工业控制。如果你一定要把web这种界面显示作为核心,而把工业控制服务作为客户端来看待,那么这个设计因为逆转而就要变得非常复杂了,而且考虑到了异步处理中的协调逻辑问题。不论被“工业控制”的对象多么简单或者复杂,都应该建立为web网站的服务器端而不是逆转。如果工业控制部分很复杂,可以单独拿出一个服务器作为对工业控制部分的集中控制服务器,但是关键就是它要成为web网站的服务端而不是客户端。

当然,完全可以把这两个逻辑服务器概念合并到同一个物理服务器。此时在web服务器上另外有一个进程负责集中控制所有工业控制功能,然后web网站使用与本地ip的tcp通讯(本地机器的特定端口)方式跨进程来访问。
  • 打赏
  • 举报
回复
你怎会看出我说过浏览器端跟socket编程有什么关系了呢?

还是仔细看看吧,不妨画个稍微正规的系统消息顺序图。
shmily895 2009-04-12
  • 打赏
  • 举报
回复
感谢SP1234的回答,可能我表述的有点问题,关键的问题是,再ISS下面,一个网站能不能使用SOCKET?
客户端在网页上点击一个按钮,web服务器得到这个命令后在底层使用socket与控制机上的SOCKET服务器连接,发送指定的命令。
web客户端点击按钮到web服务器获得这个消息,完全是网站自己可以完成的事情。socket只是在web服务器和工业控制机上,不涉及
web客户端的浏览器。就像WEB服务知道一个BUTTON_CLICK事件后,在其响应函数里面使用SOCKET。我看到一篇文章是将socket封装成DLL
在ASP上使用,不知都asp.NET上是不是也要这样做,还是直接引用就可以。

继续x学习中
wonsoft 2009-04-12
  • 打赏
  • 举报
回复
太强了!ASP.NET中的代码一般都是在服务器上执行的,你可以这样用,只不过是调用的是服务器,而不是你自己的客户端。如果ASP.NET都可以随便控制你本地的资源的话,那这个网络就不敢用了。兄弟如果要实现这个功能,可以用ActiveX来实现,非要用B/S来做这个,是有点太麻烦了吧。

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧