草庐IT

socket通信

全部标签

python - 通过 Pi 与 python 之间的套接字通信 (TCP/IP) 发送传感器数据

大家好,我对某些套接字通信编码有疑问。我有两个pi通过TCP/IP与python脚本进行通信。这个想法是一个pi(客户端)读取温度/湿度传感器数据并将其发送到另一个pi(服务器),它将存储在SQLite数据库中。将来我希望多个pi(客户端)将传感器数据发送到一个带有数据库的(网络)服务器,以在本地网站上显示数据。我已经为服务器端和客户端编写了一些python代码,并且运行良好。如果我启动服务器端,它将监听其他连接。当我启动客户端时,它将生成传感器数据并将其发送到服务器。服务器接收数据。但是当我想关闭连接以为(future的其他pi)腾出空间时,它会完全终止脚本并且不监听新的“调用”。双

sockets - ZMQ 性能与 UDP 多播比较

与“简单的”UDP及其多播实现相比,ZMQ的性能(我指的是发送所有消息时的延迟、许多消息到许多接收者的最大扇出率)是什么?假设,我有一个静态“发送者”,它必须向很多很多“接收者”发送消息。带有简单TCP传输的PUB/SUB模式似乎很适合处理这样的任务——ZMQ无需我们的努力就可以做很多事情,一个ZMQ套接字足以处理甚至大量的连接。但是,我担心的是:ZMQ可以在后台创建许多TCP套接字,即使我们没有“看到”它。这可能会造成延迟。但是,如果我创建“通用”UDP套接字并将使用多播传输我的所有消息-将只有一个套接字(多播),所以我认为延迟问题将得到解决。老实说,我想继续使用ZMQ和TCP上的P

c - socket()中 "protocol"为SOCK_DGRAM或SOCK_STREAM时是否需要指定 "type"?

来自APUE#includeintsocket(intdomain,inttype,intprotocol);地点:type可以是SOCK_DGRAM、SOCK_RAW、SOCK_SEQPACKET、SOCK_STREAM和protocol可以是IPPROTO_TCP,IPPROTO_UDP,...SOCK_DGRAM可以与IPPROTO_UDP一起工作,但不能与IPPROTO_TCP一起工作吗?SOCK_STREAM可以与IPPROTO_TCP一起工作,但不能与IPPROTO_UDP一起工作吗?如果答案是肯定的,是否意味着当type为SOCK_DGRAM或SOCK_STREAM时,我

python - 区分消息python3 tcp sockets

所以我正在尝试制作一个应用程序,用户客户端可以在其中向服务器发送消息。我想找到一种方法来区分一条消息和下一条消息,以便我可以遍历sock.recv(1)直到我知道消息已经结束并保存消息,然后我可以继续到下一条消息。我可能完全以错误的方式进行此操作,但我不确定如何使用TCP流来执行此操作。现在我只有user.py这个importsocketsock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)sock.connect(("localhost",1234))whileTrue:resp=someEventThatReturnsAMessa

c - socket - close(2) 发送 RST 数据包而不是 FIN 数据包

我写了一个简单的客户端和一个服务器,基本上客户端先连接到服务器,然后用close(2)断开连接,它看起来像:/*settingserveraddressandotherstuff*/...connect();close();调用connect()和close()之间没有其他操作。服务器接受连接并使用epoll(7)监控EPOLLOUT事件。epoll报告EPOLLOUT时,服务器向客户端写入1个字节。nev=epoll_wait(ep,events,10,-1);for(inti=0;i这里是tcpdump,9999是服务器:11:52:11.411988IPlocalhost.377

tcp - 哪些 TCP 协议(protocol)可用于客户端到客户端的通信?

很多时候,客户要求为他们的网络应用程序提供即时消息(IM)和其他客户端到客户端(P2P)通信等功能。通常这是如何在普通的网络浏览器中完成的?例如,我看过GoogleWave的演示(和Gmail)能够从常规浏览器进行IM。这是通过HTTP吗?或者XmlHttpRequest(AJAX)是否为此类通信提供必要的后端?最重要的是,我想知道服务器如何“唤醒”远程客户端,比如发送IM?或者客户端是否必须不断“轮询”消息服务器以获取新的IM? 最佳答案 通常,浏览器会轮询服务器以获取新消息。一种经常用来提高效率的方法是'longpoll'(另见

sockets - 使用中间主机建立 TCP Socket 连接

我需要在Java中的两个主机(比如host1和host2)之间建立套接字连接(TCP)。但看起来我不能这样做,因为有防火墙。虽然有第三个主机(比如host3)可以从host1和host2访问,但我认为可以用作此连接的中间件。基本上,我想将请求从host1(客户端)发送到host3,后者将我的请求重定向到host2(服务器)。能否请您告诉我如何实现这一目标?提前致谢! 最佳答案 您可以通过以下方式建立SSH隧道sshhost3-L4321:host2:6523然后在端口4321上从主机1连接到主机3。这实际上被重定向到主机2上的端口6

java - 如何测试示例 TCP Socket 程序

我有一个要运行的示例TCP客户端和服务器应用程序,但我不确定如何运行它们。它说我需要在一台主机上编译客户端程序,在另一台主机上编译服务器应用程序,但是当我只有一台计算机时,我不知道该怎么做。我知道这很简单,但我需要一些帮助才能开始。这是示例TCP服务器应用程序:importjava.io.*;importjava.net.*;classTCPServer{publicstaticvoidmain(Stringargv[])throwsException{StringclientSentence;StringcapitalizedSentence;ServerSocketwelcomeS

sockets - Chrome 实验性套接字 API : What Does `chrome.experimental.socket.sendTo()` And `recvFrom()` Do?

本周,我稍微弄乱了Chromium的套接字API。但是对于这个糟糕的记录实验界面,我不太清楚。什么docs在谷歌代码上说:...关于sendTo()目前:Writesdataonthegivensocket.socketId(integer)ThesocketId.data(ArrayBuffer)Thedatatowrite.address(string)Theaddressoftheremotemachine.port(integer)Theportoftheremotemachine.SendToCallback(function)但是sendTo()的描述和write()的描述

c# - 在 C# 中通过 TCP 进行面向对象的通信

我正在开发一个简单的应用程序,它将通过TCP从硬件接收数据。我在Internet上搜索了一些如何开发程序来接收TCP数据,但没有找到令我满意的东西。它要么是对如何在C#中使用TCP的非常简化的描述,要么是对高级框架的描述。我想要一个简单的最佳实践,了解如何以良好的面向对象方式组织程序的通信部分。有什么建议吗?理想情况下,我希望通过TCP发送的不同结构存储在程序中相应的结构中发送内容的结构:Head{Int16Mode;TimeStart_time//(Unixtime)Int16Numberofrecords}foreachrecordifmode==1char[20]Name_of_