草庐IT

TCP_Client

全部标签

tcp - 如何使用 openresty lua 中的第一个字节内容将 tcp 请求分派(dispatch)到后端

我已经启动了一个带有一个tcp服务器和两个后端的openresty。tcp服务器根据来自tcp流的内容将请求分派(dispatch)给后端。以下是openresty配置示例:stream{#defineaTCPserverlisteningontheport1234:upstreambackend1{server172.17.0.1:8081;}upstreambackend2{server172.17.0.1:8082;}server{listen1234;content_by_lua_block{localsock=ngx.req.socket(true)--reveivefirs

sockets - 如何自动测试网络 (TCP/IP) 应用程序?

我教学生开发网络应用程序,包括客户端和服务器。目前,我们还没有接触到现有的协议(protocol),如HTTP、SMTP等。学生们在普通套接字API之上编写非常简单的程序。目前我手动检查学生的作业,但我想自动执行此任务并为网络应用程序创建一个自动测试台。最有趣的测试主题是:将TCP段分成小部分并以明显的延迟传送它们。我需要这样的测试的一个原因是,学生通常只是发出一个read/recv调用并处理接收到的数据,而不检查是否收到了所有必要的数据。TCP不保证消息边界,因此在某些情况下有必要进行多次read/recv调用。问题是在大多数简单的网络应用程序中(例如,在聊天应用程序中)消息很小并且

c# - 服务器和客户端之间通过TCP异步传输数据

我有一个问题:服务器没有从客户端接收到任何数据。这是服务器初始化:publicvoidStart(){varlistener=newTcpListener(IPAddress.Any,Port);listener.Start();Task.Run(async()=>{while(!this.cancellationToken.IsCancellationRequested){varclient=awaitlistener.AcceptTcpClientAsync();varstream=client.GetStream();stringrequest=awaitReceiveReque

spring - TCP 客户端 Spring 与 Java 配置的集成

我正在尝试创建一个TCP客户端以连接到远程TCP服务器并等待接收消息。到目前为止,我有以下代码:@EnableIntegration@IntegrationComponentScan@ConfigurationpublicclassTcpClientConfig{@BeanpublicTcpInboundGatewaytcpInbound(AbstractClientConnectionFactoryconnectionFactory){TcpInboundGatewaygate=newTcpInboundGateway();gate.setConnectionFactory(conn

Spring Integration TCP 客户端的多个套接字到一个服务器地址

先决条件:我应该打开多个套接字/连接到同一个服务器IP并且港口。我应该检测请求来自哪个连接将响应重新路由到同一连接连接表示为服务器Ip和端口+客户端Ip和端口每个连接必须是single-use=false,预计会有多个请求/回复我正在使用TcpReceivingChannelAdapter和TcpSendingMessageHandler与TcpNetClientConnectionFactory的协作。以及用于动态生成这些连接的IntegrationFlow。如何为TcpNetClientConnectionFactory创建多个都指向同一主机和端口的套接字?我知道如何使用新的Tcp

tcp - BitTorrent 将数据包作为 UDP 而不是 TCP 发送

我正在使用WireShark分析BitTorrent,根据规范和Wiki,BitTorrent应该使用TCP进行交换,但我正在使用UDP进行整个交换。我阅读了应该使用UDP的DHT,但据我了解,它仅使用UDP将您的IP信息存储在哈希表中。交换应该仍然在TCP中,对吗?为什么我在UDP数据包交换而不是TCP中获取整个下载? 最佳答案 BitTorrent协议(protocol)已扩展为使用UDP与uTP-uTorrenttransportprotocol(BEP29)扩展名。 关于tcp-

tcp - 既然 MQTT 基于 TCP,那为什么 MQTT 需要 QoS?

这个问题在这里已经有了答案:Whatistheuse/purposeofMQTTQoS?(1个回答)关闭3年前。MQTT是基于TCP的协议(protocol),TCP是可靠的传输协议(protocol)。既然TCP是可靠的,那么为什么MQTT中有一个0级QoS表示从发布者到接收者的消息可能会丢失?或者说,既然TCP天生就支持可靠传输,那为什么MQTT还需要QoS的概念呢?

tcp - 在 logstash 中以事务方式发送事件

我正在尝试使用logstash从TCP套接字接收事件,并将它们输出到Kafka主题。我当前的配置能够完美地做到这一点,但我希望能够以事务方式向Kafka发送事件。我的意思是,系统不应该将事件发送到kafka,直到收到提交消息:STARTTXN123--NomessagesenttoKafka123-Event1Message--NomessagesenttoKafka123-Event2Message--NomessagesenttoKafka123-Event3Message--NomessagesenttoKafkaCOMMITTXN123--Event1,Event2,Event

c - 如何在 linux 中获取套接字的 tcp 窗口大小?

在linuxcapi中有没有办法获取tcp套接字的传入窗口大小?明确地说,传入是指从我的Linux服务器的角度来看。似乎我接受的套接字中linux中的SND和RCV值被翻转了,即RCV意味着从服务器到客户端。在这种情况下,我需要客户端到服务器端,即SND。SND_BUF和RCV_BUF似乎与发送的实际值无关,并且TCP_WINDOW_CLAMP不准确。 最佳答案 您可以使用这个(特定于linux,不可移植的)套接字选项读取内部tcp套接字参数:structtcp_infoti;socklen_ttisize=sizeof(ti);g

tcp - 使用 ninenine ranch 实现 Long live tcp 连接

我正在尝试使用ninneninerancherlanglibrary实现长期有效的TCP连接.但是查看文档我看不到这样做的方法。我还编写了自己的牧场协议(protocol),如下所示start_link(Ref,_Socket,Transport,Opts)->Pid=spawn_link(?MODULE,init,[Ref,Transport,Opts]),{ok,Pid}.init(Ref,Transport,_Opts=[])->{ok,Socket}=ranch:handshake(Ref),loop(Socket,Transport).loop(Socket,Transpor