草庐IT

tcp_client

全部标签

java - 通过 TCP/IP 的 RS485 通信

我有一个设备有一个rs485输出和另一个连接到这个输出的gsm设备。我可以使用特殊的IP和端口访问gsm设备。Gsm设备透明地工作。将从tcp套接字接收到的所有数据发送到rs485,并在rs485上检索数据,然后写入打开的tcp套接字。gsm设备和rs485现有设备之间的连接是有线的,并将波特率固定为300。当我尝试用我的笔记本电脑读取rs485现有设备时,将rs485连接到我的usb,设置串行参数,例如;偶数:偶数数据位:7停止位:1波特率:300(此配置是通用的,并用标准文档进行描述)有了这个配置,一切正常,我可以传输数据了。当我尝试使用gsm设备时,我必须操纵生成的字节数组以适应

c# - 将字符串附加到字节数组以通过 TCP 传输

我需要将一些文本/字符串附加到字节数组,以便通过TCP传输。我试过:byte[]msg1=Encoding.UTF8.GetBytes("\u00C3\u00C4\u00C5\u00C3\u00A2\u00A1sometext");但这在发送到TCP时并没有得到正确的结果。然后我尝试了以下内容:byte[]msg2=newbyte[]{0xC3,0xC4,0xC5,0xC3,0XA2,0xA1};现在,当将msg发送到TCP时,这是正确的结果。但是如何将sometext添加到'msg2' 最佳答案 我使用了System.Buffer

c - 在本地网络中读取 tcp 套接字上的完整数据

我有一个服务器应用程序和一个客户端应用程序,它们都是用C语言编写的。两者都在tcp套接字上进行通信。我想从客户端向服务器以及从服务器向客户端发送大量数据。我已经针对最大2262字节进行了测试。我发现当我从服务器(运行debian7)向客户端(运行ubuntu14.04LTS)发送2262个字节时,我能够一次接收所有字节(两者都在通过wlan通信的本地网络中)。但是当我尝试从客户端向服务器发送相同数量的字节时,我只能读取1448个字节(经常)和几次3000个字节(3000个字节是我想从文件中读取的最大字节数描述符)一次在服务器上。我还发现,如果我在同一台机器上同时运行服务器和客户端应用程

c# - 用户控件使用与主窗体相同的 TCP 连接

我有一个表单作为TCP客户端/服务器项目的客户端GUI。我有多个用户控件充当“页面”,用户可以使用主GUI窗体上的按钮进行导航。我的问题是;这些用户控件(以及主窗体)中的每一个都需要能够与服务器通信(即向它发送消息)。目前,为了实现这一点,每次添加新用户控件时我都会打开一个新连接,方法是将以下代码放在我的主窗体以及所有用户控件“页面”中:publicpartialclassMainForm:Form{privateIPEndPointserverEndPoint;privateTcpClientmyClient=newTcpClient();publicMainForm(){Initi

sockets - 使用 MQTT 而不是 RAW TCP/IP 套接字?

每个人都在谈论MQTT,所以我有一个应用程序,其中数据被加扰并通过原始TCP套接字发送。数据在服务器端接收,解扰并用于任何应用程序。AWS告诉我将其更改为MQTT,值得吗?我的设备是连接到3G调制解调器的微Controller(通过SPI/UART)。数据输出的方式通过at命令。所以我加扰数据并将其加载到AT命令中,并在每次数据必须通过调制解调器发送到服务器时执行它。我不允许安装Linux,所有东西都必须用C作为嵌入式设备。我有大约10万台设备每2分钟向服务器发送200个字节。此字节数据是传感器信息,例如打包的floar、float、int、int、double、float等,每条消息

c++ - 在 async_read 处理程序在服务器中返回错误后调用 boost::asio::tcp::socket 方法

对于日志输出,我正在调用tcp::socket::remote_endpoint()来自shared_ptrSessionSession时的对象创建和销毁的时间。如果async_read被调用并且客户端在服务器发送回复之前发送了一个FIN,然后在服务器发送回复之后发送了一个RST数据包(write不返回任何错误),async_read函数返回错误代码system::54(not_connected-带有“连接由对等方重置”的消息),然后当我再次调用remote_endpoint方法时(在Session对象析构函数中)它抛出异常:libc++abi.dylib:terminatingwi

sockets - 数据在 tcp 套接字中保留多长时间和位置

TCP发送方应用程序想要发送数据,因此它使用write()系统调用写入套接字,然后write()返回。现在socket到NIC发生在内核和nic驱动程序的幕后,这取决于可以在线发送的数据量,同时牢记tcp连接的属性(拥塞窗口和所有)。现在,在从客户端返回成功的接收通知(TCPACK)之前,这些数据是否会一直保存在套接字中?我想知道数据保留多长时间和保留位置,以便在tcp数据包丢失的情况下可以再次发送。 最佳答案 TCP是一种可靠的传输方式。它自动处理重传。如果确实发生数据丢失,则连接被视为断开/丢失,并且您的代码将开始在后续套接字操

c# - TCP 客户端有时会合并数据包

在Unity应用程序中,我每秒通过TCP接收大约160个JSON对象。我下面的阅读代码似乎以这样的速度挣扎,并且有几次没有将它们作为单个消息processData。尝试创建JSONObject时`而不是我得到这样的东西improperJSONformatting:right","data":{"type":"flex","gesture":"open","data":[0.11425240454677936,0.11582253631723596,0.0947054436987323,0]}} {"type":"right","data":{"type":"sensor","data"

TCP 连接永远不会处于已建立状态

我已经从git克隆了一个Spark项目,我确信它可以正常工作和运行。当我运行该程序时,Jetty服务器启动并且看起来没有问题。这是控制台:[Thread-0]INFOorg.eclipse.jetty.util.log-Logginginitialized@402ms[Thread-0]INFOspark.webserver.JettySparkServer-==Sparkhasignited...[Thread-0]INFOspark.webserver.JettySparkServer->>Listeningon0.0.0.0:4567[Thread-0]INFOorg.eclip

java - Spring XD 使用自定义 TCP 序列化器

我扩展了AbstractByteArraySerializer,现在我想像使用其他可用的TCP序列化器(LF、NULL、L1等)一样使用这个序列化器。我在tcp-encdec.xml中找到了配置文件并注册了我自己的配置文件:......Spring使用EncoderDecoderMixins.Encoding将Encoding转换为特定的配置文件。EncoderDecoderMixins.Encoding是最终类中的枚举。Spring将decoderTCP属性转换为基于此枚举的特定配置文件。我的CUSTOM序列化程序无法工作,因为它不在指定的Encodings中。有没有办法注册一个新的