标签: tcp

带有UDP的JavaScript WebSockets?

我正在编写一个JavaScript应用程序,它必须从其他用户那里接收大量数据.如果某些数据丢失并不重要.有没有办法使用带有UDP而不是TCP的JavaScript WebSockets?

javascript udp tcp packet websocket

69
推荐指数
4
解决办法
6万
查看次数

检测TCP客户端断开连接

假设我正在运行一个简单的服务器并且已经accept()从客户端编辑了一个连接.

告诉客户端何时断开连接的最佳方式是什么?通常情况下,客户端应该发送一个关闭命令,但如果它手动断开连接或完全失去网络连接怎么办?服务器如何检测或处理此问题?

c++ sockets tcp

67
推荐指数
3
解决办法
12万
查看次数

设置TIME_WAIT TCP

我们正在尝试调整通过TCP接受消息的应用程序,并使用TCP进行一些内部消息传递.在进行负载测试时,我们注意到响应时间显着降低(然后完全停止),因为对系统进行了更多的同时请求.在此期间,我们看到很多TCP连接处于TIME_WAIT状态,有人建议将TIME_WAIT环境变量从默认的60秒降低到30.

我所知,该TIME_WAIT设置实质上设置了在关闭连接后TCP资源再次可用于系统的时间.

我不是一个"网络人",对这些事情知之甚少.我需要很多联系帖子中的内容,但是"笨拙"了一下.

  • 我想我明白为什么这个TIME_WAIT值不能设置为0,但可以安全地设置为5吗?10岁呢?什么决定了这个值的"安全"设置?
  • 为什么这个值的默认值为60?我猜想比我聪明的人有充分的理由选择这个作为合理的默认值.
  • 关于压倒这个价值的潜在风险和好处,我还应该知道什么呢?

tcp network-protocols

66
推荐指数
3
解决办法
11万
查看次数

Python:绑定套接字:"地址已在使用中"

我有一个关于TCP/IP网络上的客户端套接字的问题.让我说我用

try:

    comSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

except socket.error, msg:

    sys.stderr.write("[ERROR] %s\n" % msg[1])
    sys.exit(1)

try:
    comSocket.bind(('', 5555))

    comSocket.connect()

except socket.error, msg:

    sys.stderr.write("[ERROR] %s\n" % msg[1])

    sys.exit(2)
Run Code Online (Sandbox Code Playgroud)

创建的套接字将绑定到端口5555.问题是在结束连接后

comSocket.shutdown(1)
comSocket.close()
Run Code Online (Sandbox Code Playgroud)

使用wireshark,我看到两侧的FIN,ACK和ACK关闭了套接字,我无法再次使用该端口.我收到以下错误:

[ERROR] Address already in use
Run Code Online (Sandbox Code Playgroud)

我想知道如何立即清除端口,以便下次我仍然可以使用相同的端口.

comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
Run Code Online (Sandbox Code Playgroud)

setsockopt似乎无法解决问题谢谢!

python sockets port tcp

66
推荐指数
5
解决办法
19万
查看次数

在Node.js net中使用pipe()

我无法绕过net模块的pipe几个Node.js示例中显示的函数.

var net = require('net');

var server = net.createServer(function (socket) {
  socket.write('Echo server\r\n');
  socket.pipe(socket);
});
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释这是如何工作的以及为什么需要它?

javascript tcp node.js

66
推荐指数
2
解决办法
8万
查看次数

如何在Go Programming中将[] byte转换为int

我需要通过TCP创建一个客户端 - 服务器示例.在客户端,我读了2个数字,然后将它们发送到服务器.我遇到的问题是我无法转换[]byteint,因为通信只接受类型的数据[]byte.

有没有办法转换[]byteint或我可以发送int到服务器?

一些示例代码将非常感激.

谢谢.

byte tcp client-server type-conversion go

65
推荐指数
6
解决办法
9万
查看次数

我可以使用tcpdump来获取HTTP请求,响应头和响应正文吗?

tcpdump通过执行以下命令来获取HTTP数据:

sudo tcpdump -A -s 1492 dst port 80
Run Code Online (Sandbox Code Playgroud)

上述命令的结果:

  1. 标题,我认为请求和响应标头.
  2. 无法读取的数据.
  3. 网址GET /modules/mod_news_pro_gk1/cache/stories.ilbalad.ajayeb.strange-tractor.jpg.

我需要一个更清晰的结果,例如,可读请求>响应标题>响应正文等.如何过滤我的结果?

android tcp http tcpdump

64
推荐指数
3
解决办法
15万
查看次数

WebRTC使用TCP还是UDP?

这听起来像一个非常基本的问题,但我需要确认

  1. WebRTC是否使用TCP或UDP作为其对等传输?我怎么知道 ?
  2. 我看到有可靠性模式和DTLS协议,它们如何影响?
  3. Media和DataChannel的传输方式是否相同?
  4. 如何在TCP和UDP之间切换?

我问这个是因为我知道浏览器对并行连接的数量有限制(我认为他们谈论TCP),并且UDP连接可能不受限制.

udp tcp channel transport webrtc

64
推荐指数
1
解决办法
3万
查看次数

WebSockets ping/pong,为什么不用TCP keepalive?

WebSockets 可以选择将ping发送到另一端,另一端应该用pong响应.

收到Ping帧后,端点必须发送Pong帧作为响应,除非它已经收到一个关闭帧.它应该尽快响应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?

tcp keep-alive websocket

63
推荐指数
4
解决办法
4万
查看次数

在.Net中查找下一个TCP端口

我想为WCF服务调用创建一个新的net.tcp:// localhost:x/Service端点,并使用动态分配的新的open tcp端口.

我知道当我打开与给定服务器的连接时,TcpClient将分配一个新的客户端端口.

有没有一种简单的方法可以在.Net中找到下一个打开的TCP端口?

我需要实际的数字,以便我可以构建上面的字符串,0不起作用,因为我需要将该字符串传递给另一个进程,以便我可以回调该新的通道.

.net c# wcf networking tcp

62
推荐指数
6
解决办法
3万
查看次数