草庐IT

Networking

全部标签

java - Java 中可靠的 TCP/IP

有没有一种方法可以使用java.net.*中的JavaTCP/IP库进行可靠的通信(发送方获知它发送的消息已被接收方接收)?我知道TCP相对于UDP的优势之一是它的可靠性。然而,我无法在下面的实验中得到这种保证:我创建了两个类:1)echoserver=>总是发回它接收到的数据。2)client=>定期向回显服务器发送“Helloworld”消息。它们在不同的计算机上运行(并且运行良好)。在执行过程中,我断开了网络连接(拔下了LAN电缆)。断开连接后,服务器仍在等待数据,直到几秒钟过去(最终引发异常)。同样,客户端也一直发送数据,直到几秒钟过去(引发异常)。问题是,objectOutp

networking - VB6 异步 Tcp 客户端截断传入消息

我有一个C#Tcp服务器,它向注册的VB6Tcp客户端发送消息。消息的接收是使用WinSock以异步方式完成的。所以出现“完成”消息的VB6部分如下所示:PrivateSubwskConnect_DataArrival(ByValbytesTotalAsLong)DimsBuffAsStringwskConnect.GetDatasBuff,vbString'--RetrievesentvalueProcessMessagesBuff'--ProcessthevalueEndSub问题是C#Tcp服务器正在发送一个长度为6874的字符串,但是当我们检查DataArrival事件触发时接

networking - 玩 tcp/ip

我想学习和使用python、java或c++的tcp/ip库。但是我只有一台电脑。是否可以“伪造”远程计算机来模拟远程主机,在NAT下结束一切? 最佳答案 最简单的方法是在同一台计算机上同时运行服务器和客户端,并使用“环回”IP地址:127.0.0.1,它始终连接到本地主机。我在测试期间做过很多次。例如,在端口NNN上运行本地网络服务器,然后在浏览器中输入http://127.0.0.1:NNN/事实上,127.X.Y.Z应该总是与本地机器对话。 关于networking-玩tcp/ip

session - 如何使用 tcpdump 区分 tcp 连接的第一个 fin 数据包和第二个数据包?

我正在开发一个http服务器。现在我想做一些统计,具体来说,我想知道有多少tcp连接被客户端关闭,有多少被我的服务器关闭。我在我的http服务器上关闭了Keep-alive功能,所以正常情况是我的服务器发送第一个FIN数据包,客户端发送第二个,这意味着连接被我的服务器正常关闭。如果它们的顺序相反,则表明关闭异常,我很在意。问题来了,如何使用tcpdump区分第一个FIN数据包和第二个数据包?由于它们都在FIN和ACK标志位中设置。提前致谢,新年快乐! 最佳答案 我正在通过ssh隧道连接到我的网络服务器,它正在监听5000/tcp。我

sql-server - 使用 Plesk 远程访问 MSSQL 数据库

我正在努力获取与运行WindowsServer2012和SQLServer2014Express的云虚拟机上运行的数据库的远程连接。我可以使用SQLServerManagementStudio在机器上进行本地连接(通过RDP)。我还通过SQLManagmentStudio右键单击​​并检查是否启用了允许远程连接。正如我提到的,服务器正在运行plesk,所以我启用了以下防火墙规则;MSSQLoverTCPprotocolAllowincomingconnectionsfromallonport1433/TCP,profiles:domain,private,public和MSSQLPro

http - 在发送响应之前测量 goodput

我的想法是让在较慢连接上工作的Web应用程序可以回退到替代的较小Assets版本(如图像、视频等)。HTTPLiveStreaming具有类似的行为,但适用于视频流。起初我以为,这可以通过使用HTTP/2服务器推送来实现。Web服务器将发送响应、测量有效输出并在关闭连接之前推送适当的Assets版本。但这会消除服务器推送的优势,因为客户端只有在收到页面主体后才能开始下载Assets。由于Assets不像流那样提供,因此服务器应在将HTTP响应发送到客户端之前检测有效输入。我还想检查是否可以从TCP堆栈获取吞吐量,例如来自慢启动的值。但我想它只有在发送响应时才可用。有人知道Web服务器如

python - 如何重现 "Connection reset by peer"

我了解了tcp中两个臭名昭著的错误之间的区别:[Errno54]Connectionresetbypeer[Errno32]管道损坏这两个错误都是tcp连接的一侧因未知原因关闭,而另一侧仍然与之通信。当对方写东西时,抛出Brokenpipe当对方读一些东西时,Connectionresetbypeer被抛出我能够使用下面的Python代码重现Brokenpipe。#tcp_server.pydefhandler(client_sock,addr):try:print('newclientfrom%s:%s'%addr)finally:client_sock.close()#closec

sockets - 了解眩晕工作

我浏览了ProgrammingP2Papplication所以发帖。但我想我仍然不清楚STUN是如何在引擎盖下工作的。所以在此发表一下我的理解,希望大家指正。按照例子假设机器(A)IP是192.168.1.2运行在(STUN服务器上的TCP客户端请求)4900(TCP客户端请求STUN服务器通过TCP运行在4900)并且Stun服务器返回了Nat设备的公共(public)IP即128.11.12.138888现在我希望机器B(假设现在B通过公共(public)IP128.11.12.13知道)通过端口3000(TCP)连接到机器A这之后发生了什么——B尝试将A连接到128.11.12.

linux - 将 tcp_max_tw_buckets 设置为非常小的值有什么副作用?

我知道将tcp_max_tw_buckets设置为相对较小的数字(例如30000或50000)是很正常的,以避免主机有大量时间等待状态连接而应用程序无法打开新连接的情况。这是很多人提到的东西。比如这样的问题:HowtoreducenumberofsocketsinTIME_WAIT?之前我知道time-wait是一种避免TCP数据包的状态outoforder,使用someotherapproach可能会更好来应对它。如果您将其设置为较小的数字,则可能会出错。我觉得我卡在某个地方,我必须将tcp_max_tw_buckets设置为一个较小的数字,并且不知道我应该避免它的具体情况。所以我的

c++ - 为 C++ 中的应用程序最佳使用而打开的并行套接字/TCP 连接数

因此,我正在开发一个C++应用程序,该应用程序当前使用C套接字在对等点之间传输数据。有n个对等点,并且都运行相同的代码。在应用程序逻辑中,任何对等点都可能需要将(可能很大的)数据传输到任何其他对等点,因此首先在所有可能的对等点组合之间打开连接。要求是应用程序逻辑和(可能是大的)数据的网络传输应该尽可能快。截至目前,在任意2个对等点(比如A和B)之间,应用程序打开2种类型的连接-一种是A是服务器,B是客户端,反之亦然。这样做可能是为了如果A需要同时向B传输数据,反之亦然,则整个过程可以比仅从A到B具有一种连接类型更快地完成。对于每种连接类型(比如A是服务器,B是服务器)客户端),然后应用