Questions tagged «tcp»

传输控制协议(TCP)是一种传输层协议,可提供面向连接的数据流服务,并保证按顺序传送。


14
立即检测客户端与服务器套接字的断开连接
如何检测到客户端已与服务器断开连接? 我有下面的代码在我的AcceptCallBack方法 static Socket handler = null; public static void AcceptCallback(IAsyncResult ar) { //Accept incoming connection Socket listener = (Socket)ar.AsyncState; handler = listener.EndAccept(ar); } 我需要找到一种方法来尽快发现客户端已从handlerSocket断开连接。 我试过了: handler.Available; handler.Send(new byte[1], 0, SocketFlags.None); handler.Receive(new byte[1], 0, SocketFlags.None); 当您连接到服务器并想检测服务器何时断开连接时,上述方法可以工作,但是当您是服务器并想检测客户端断开连接时,上述方法不起作用。 任何帮助将不胜感激。
80 .net  c#  sockets  tcp  connection 

8
如何正确并完全关闭/重置TcpClient连接?
关闭或重置TcpClient连接的正确方法是什么?我们拥有与硬件进行通信的软件,但是有时出了点问题,在重新启动软件之前,我们不再与之通信。 我尝试过强制TcpClient.Close()甚至将其设置为null,但这不起作用。仅完全重新启动软件即可。 有什么建议吗? 我不能使用using关键字,因为TpcClient仅在一个位置定义,而是在整个库中使用。(并且在任何给定时间只有一个连接) 这是一个处理通讯的库。软件本身可以调用Controller类(代表硬件)的ResetConnection()方法。 目前看起来像 if (tcpClient != null) { tcpClient.Close(); tcpClient = null; } 现在,从我在这里阅读的内容中,我应该使用tcpClient.Dispose()代替“ = null” 我将尝试一下,看看是否有所作为。
78 c#  .net  tcp 

3
我可以使用tcpdump获取HTTP请求,响应标头和响应正文吗?
我正在tcpdump通过执行以下命令来获取HTTP数据: sudo tcpdump -A -s 1492 dst port 80 上面命令的结果: 标头,我认为是请求和响应标头。 无法读取的数据。 网址GET /modules/mod_news_pro_gk1/cache/stories.ilbalad.ajayeb.strange-tractor.jpg。 我需要一个更清晰的结果,例如可读请求>响应标头>响应正文等。如何过滤结果?
78 android  http  tcp  tcpdump 


11
检测TCP客户端断开连接
假设我正在运行一个简单的服务器,并accept()从客户端建立了连接。 告诉客户端何时断开连接的最佳方法是什么?通常,客户端应该发送关闭命令,但是如果客户端手动断开连接或完全失去网络连接怎么办?服务器如何检测或处理?
77 c++  sockets  tcp 

4
Bash中的简单套接字服务器?
有没有一种方法可以快速绑定到TCP端口/ IP地址,并简单地将所有信息打印到STDOUT?我有一个简单的调试解决方案,它可以将内容写入127.0.0.1:4444,并且我希望能够简单地从bash绑定端口并打印遇到的所有内容。是否有捷径可寻?
76 linux  bash  sockets  tcp 

4
WebSockets ping / pong,为什么不进行TCP keepalive?
WebSockets可以选择向另一端发送ping,而另一端应该以Pong响应。 收到Ping帧后,端点必须发送Pong帧作为响应,除非它已经接收到Close帧。在实际可行的情况下,应使用Pong框架进行响应。 TCP以keepalive形式提供类似的内容: [Y]您向您的同伴发送一个没有数据的keepalive探测数据包,并且ACK标志已打开。由于TCP / IP规范(作为一种重复的ACK),您可以执行此操作,并且远程端点将没有参数,因为TCP是面向流的协议。另一方面,您将收到来自远程主机的答复(该主机根本不需要支持keepalive,仅支持TCP / IP),并且没有数据和ACK。 我认为TCP keepalive效率更高,因为它可以在内核中进行处理,而无需将数据传输到用户空间,解析websocket框架,制作响应框架并将其交还给内核进行传输。网络流量也更少。 此外,WebSockets被明确指定为始终在TCP上运行。它们与传输层无关,因此TCP keepalive始终可用: WebSocket协议是一个独立的基于TCP的协议。 那么,为什么要使用WebSocket ping / pong代替TCP keepalive?

8
在.NET中查找下一个TCP端口
我想为WCF服务调用创建一个新的net.tcp:// localhost:x / Service端点,并动态分配新的开放TCP端口。 我知道当我打开到给定服务器的连接时,TcpClient将分配一个新的客户端端口。 是否有一种简单的方法来查找.NET中的下一个打开的TCP端口? 我需要实际的数字,以便可以在上面构建字符串。0不起作用,因为我需要将该字符串传递给另一个进程,以便可以在该新通道上进行回调。
74 c#  .net  wcf  networking  tcp 

6
Go编程中如何从[] byte转换为int
我需要通过TCP创建一个客户端-服务器示例。在客户端,我读取了2个数字,然后将它们发送到服务器。我面临的问题是我无法从转换[]byte为int,因为通信仅接受type的数据[]byte。 有什么方法可以转换[]byte为int或可以发送int到服务器吗? 一些示例代码将不胜感激。 谢谢。

17
现实生活中有哪些TCP和UDP实例?
我知道两者在技术层面上的区别。 但是在现实生活中,谁能提供TCP和UDP应用程序(用法)的示例(越多越好)以证明两者之间的区别?
73 tcp  udp 


4
在Node.js网络中使用pipe()
我很难pipe理解net模块的几个Node.js示例中显示的功能。 var net = require('net'); var server = net.createServer(function (socket) { socket.write('Echo server\r\n'); socket.pipe(socket); }); 任何人都可以提供有关其工作原理以及为什么需要这样做的解释吗?

7
设置TIME_WAIT TCP
我们正在尝试调整一个应用程序,该应用程序通过TCP接受消息,并且还将TCP用于其一些内部消息传递。在进行负载测试时,我们注意到随着向系统发出更多同时请求,响应时间显着降低(然后完全停止)。在这段时间内,我们看到许多TCP连接处于TIME_WAIT状态,有人建议将TIME_WAIT环境变量从默认的60秒降低到30秒。 据我了解,该TIME_WAIT设置实质上是设置关闭连接后再次向系统提供TCP资源的时间。 我不是“网络专家”,对这些事情了解甚少。我需要该链接文章中的很多内容,但要“简化”一下。 我想我理解为什么TIME_WAIT不能将值设置为0,但是可以安全地将其设置为5吗?那10点呢?是什么确定该值的“安全”设置? 为什么此值的默认值为60?我猜想比我聪明的人有充分的理由将其选为合理的默认值。 关于覆盖此值的潜在风险和收益,我还应该了解什么?

1
如何在启用TLS配置的情况下连接到Traefik TCP服务?
我正在尝试配置Traefik,以便可以通过域名访问服务,而不必设置其他端口。例如,两个MongoDB服务(均位于默认端口上,但位于不同的域中)example.localhost和example2.localhost。仅此示例有效。我的意思是,其他情况也可能有效,但是我无法连接到它们,并且我不明白问题出在哪里。Traefik可能甚至都不是问题。 我准备了一个带有示例的存储库。您只需要使用mkcert生成自己的证书即可。位于的页面会example.localhost返回403 Forbidden错误,但您不必担心,因为此配置的目的是显示SSL正常(挂锁,绿色状态)。所以不要专心403。 仅与mongo服务的SSL连接有效。我使用Robo 3T程序对其进行了测试。选择SSL连接后,提供主机example.localhost并选择用于自签名(或自有)连接的证书即可。那是唯一以这种方式工作的东西。不管我是否提供证书,与redis(Redis Desktop Manager)和pgsql(PhpStorm,DBeaver,DbVisualizer)的连接均不起作用。我不将SSL转发给服务,仅连接到Traefik。我花了很长时间。我搜索了互联网。我还没有找到答案。有人解决了吗? PS。我在Linux Mint上工作,因此我的配置应该可以在此环境下正常工作。我会要求Linux的解决方案。 如果您不想浏览存储库,请附加最重要的文件: docker-compose.yml version: "3.7" services: traefik: image: traefik:v2.0 ports: - 80:80 - 443:443 - 8080:8080 - 6379:6379 - 5432:5432 - 27017:27017 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./config.toml:/etc/traefik/traefik.config.toml:ro - ./certs:/etc/certs:ro command: - --api.insecure - --accesslog - --log.level=INFO - --entrypoints.http.address=:80 - --entrypoints.https.address=:443 - --entrypoints.traefik.address=:8080 …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.