草庐IT

MODBUS-TCP

全部标签

c# - Topshelf 服务(充当 TCP 服务器)与自托管 OWIN WebAPI 之间的通信

我有一个用作TCP服务器的TopshelfWindows服务。在此服务中,我还有一个自托管(OWIN)WebAPI。我的目标是以某种方式允许WebAPI与同一服务中包含和运行的TCP服务器进行通信。自然地,我可以简单地使用诸如“触发器”文件或共享数据库之类的东西可以经常进行轮询,但我想知道实现此目的的任何更优化/native方法。为了更好地了解该项目,请考虑使用我的API并使用任意字符串参数进行某些调用的单页应用程序。然后应将此数据传递给连接到正在运行的TCP服务器的客户端(使用winsock的C++控制台应用程序)。以下容器被实例化并传递给TopshelfHostConfigurat

c# - TCP/IP 在不关闭连接的情况下连续接收消息

我一直在观看以下关于如何创建TCP/IP连接的视频:Server和Client我需要做的是创建一个游戏(flipcard),在其中我只为矩阵发送2个坐标。而已。或更少。(接下来是代码)据我观察,他每次发送消息时都会关闭并重新打开连接。它的工作。但是,我如何修改代码以保持连接打开并检测消息何时到达?我所有的谷歌搜索都让我找到了这两种方法:Ihavehadluckusingthesocketobjectdirectly(ratherthantheTCPclient).(但我不想使用套接字)Alsousessockets当我点击启动服务器时privatevoidbStartServer_Cl

sockets - TCP - 不同应用程序可以同时将同一客户端端口用于不同连接吗?

在TCP中,不共享相同可执行镜像的不同进程(例如,没有fork())是否有可能在Windows、Linux或OSX上使用相同的客户端端口?我相信这与使用setsockopt()设置的套接字选项SO_REUSEADDR和SO_REUSEPORT特别相关。据我所知,我相信同一个进程/图像可以做到这一点,但我还没有找到关于多个进程/图像的信息。我想这在理论上是可能的,因为每个套接字都是由5值元组[IP_PROTO,src_ip:src_port,dst_ip:dst_port]定义的。所以我假设,只要共享一个客户端端口的多个TCP连接没有建立到同一个dst_ip:dst_port,这在理论上

tcp - 从 ROSbridge 服务器到客户端的消息

是否可以从ROSbridge服务器向连接的客户端发送消息?我已经使用tcp连接了一个Android应用程序,并且能够将JSON消息从应用程序发送到服务器。但是也可以向另一个方向发送消息吗?谢谢 最佳答案 作为inthetutorials您通过启动rosbridge创建一个websocket。您将不得不使用该套接字。不确定rosjava是否可以为您的android应用程序使用它 关于tcp-从ROSbridge服务器到客户端的消息,我们在StackOverflow上找到一个类似的问题:

sockets - RST 在通过 TCP 套接字的视频流中?

我有一个通过UDP传输视频流的应用程序,它完全成功。我将套接字更改为TCP。当它在几个数据包传输后运行时,接收方发送RST并且它停止工作。(大长度的数据包也很奇怪,在MTU为1400时从发送方传输到接收方-这是什么数据包?)我检查了接收者和发送者的日志。接收方收到的最后一个数据包有一个大而奇怪的序列号(转储数据包)。它出错,然后应用程序停止。发件人没有发送这样的数据包。这个数据包是从哪里来的?是传输层实现的吗?当我在每次发送数据包后向发送方添加一个sleep时间(0.1秒)时。该程序在Wireshark中没有任何奇怪的大长度数据包或奇怪的序列号的情况下工作但这不是视频的合理解决方案。你

tcp - TCP Header中,为什么Urgent指针指向一个32位的序号,却有16位长

在TCPHeader中,为什么Urgent指针字段指向一个32位的序号却有16位长 最佳答案 不要认为它指向一个序列号。确实,序列号是用来计算传输的总字节数的,它们的长度是32位,并且可以环绕;然而,紧急指针是指向数据的指针。紧急指针指示与已接收到的具有紧急位设置的TCP段的序列号的偏移量。因此,它不一定代表一个32位的数字,但也意味着紧急数据必须在该序号之后的64k以内。 关于tcp-TCPHeader中,为什么Urgent指针指向一个32位的序号,却有16位长,我们在StackOve

proxy - 使用代理时,停止在 TCP/IP 堆栈指纹中检测到 linux?

如果我连接到我的Windows7虚拟机上的socks5并继续访问www.doileak.com,它告诉我javascript和用户代理显示Windows操作系统,但TCP/IP指纹显示它是一个linux发行版,因此我可能正在使用虚拟机或代理。虚拟机正在使用virtualbox的Windows主机上运行。这个指纹是因为我连接的代理在linux发行版上吗?如果是这样,有什么办法可以防止这种情况发生吗? 最佳答案 doileak.com使用p0ftofingerprint.source,对于Windows:;-------;Windows

c# - 最大化任务并发性 - 使用 TCP/IP 和特定端口过滤

这是this的后续问题问题。在下一个级别,我现在想使用最大任务并发连接到大量IP地址上的预期主机,在特定端口上使用TCP/IP。我自己的研究以及社区引用使我找到了关键文章,例如:HowtocheckTCP/IPportavailabilityusingC#(SocketCommunication)Checkingifipwithportisavailable?HowtosetthetimeoutforaTcpClient?一个非常令人印象深刻的大规模ping解决方案:MultithreadingC#GUIpingexample当然还有这个问题的前身:C#,MaximizeThreadC

python - 在 Python 中通过 TCP 发送/接收多条消息

我想在服务器和客户端之间发送/接收多个TCP消息。例如:服务器:ip=""port=8888buffersize=1024s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind((myIP,myPort))s.listen(1)(cl,adress)=s.accept()cl.send("hi!".encoded())msg=cl.recv(bufferSize).decode()msg=msg[0]print("Receivedmessageis'{}'".format(msg))客户:ip=""port=8888s=sock

azure - 连接到 Azure VM 上的专用 TCP 服务

我正在测试自己的TCP客户端/服务器软件,尝试使用AzureVM进行测试。我在一年多前设置的AzureVM上成功完成了这项工作。现在我已经创建了一个我需要测试的新VM。我的服务安装在VM上并监视端口18971。在Azure门户中,我为该端口创建了一个TCP“端点”。该机器运行的是Windows2012。我已使用入站和出站规则配置Windows防火墙,以允许所有进出该端口的TCP流量。我也试过关闭防火墙。尽管如此,我的客户端软件仍然无法运行,我在WinsockAPI“连接”上收到错误10060。域名和IP地址我都试过了。关于允许TCP流量我还必须做什么的任何想法?我很确定这是一个Azur