草庐IT

Networking

全部标签

java - TCP程序中的问题(Java)

谁能帮我调试这个程序?服务器代码如下:packagenetworking;importjava.io.IOException;importjava.io.PrintWriter;importjava.net.ServerSocket;importjava.net.Socket;importjava.util.Scanner;classTcpServer{publicstaticvoidmain(String[]args)throwsIOException{ServerSocketserverSocket=newServerSocket(5555);while(true){Socketc

sockets - 服务器是否为每个客户端进程打开了套接字?

我对套接字感到困惑。据我所知,套接字是ip地址和端口号的组合。它只是编程抽象,允许写入流或从流中读取(在TCP的情况下)。现在我不太确定的是,服务器在为客户端提供服务时是否有一个或多个套接字?让我们说http在80端口。来自不同客户端的所有数据是否都发送到一个套接字(服务器:80)并且一些UBER服务器进程根据传入地址区分它们,还是更多套接字基于TCP层创建的客户端地址和端口号的组合?有人可以用逐步算法(同时为多个客户端服务)而不只是服务器将套接字绑定(bind)到端口、服务器监听套接字、服务器提供数据来彻底描述这一点。 最佳答案

networking - 确定网络中的不对称延迟

想象一下,在异构网络环境中,您有许多集群服务器,跨越许多主机,这样服务器之间的连接可能会有非常不同的延迟和带宽。您想通过在服务器之间传输数据来构建服务器之间的连接图。当然,随着网络拓扑结构的变化,这张map可能会随着时间的推移而变得陈旧-但现在让我们忽略这些复杂性并假设网络是相对静态的。鉴于此主机图中节点之间的延迟,计算带宽是一项相对简单的计时练习。我在延迟方面遇到了更多困难-但是。要获得往返时间,只需对从本地主机到远程主机的回程ping进行计时即可-两个计时事件(开始、停止)都发生在本地主机上。假设在两个方向上的延迟不相等,如果我想要单向时间怎么办?假设不同主机上的时钟没有精确同步(

iphone - iPhone上的TCP打洞

我读了一些书,虽然我是iPhone网络的新手,但我想知道是否可以使用TCP打洞器通过NAT连接两部iPhone。我还阅读了一些有关uPnP和发夹的有用信息,但我根本不熟悉这些内容,所以如果有人对这是否可行有任何想法。我的目标是能够在大范围内连接多部iPhone(因此切换到某种类型的GPSR可能会更好)但目前我只使用两部iPhone,3GNATTraversal似乎是最简单和理论上最可靠。 最佳答案 nattraversal是通用术语,用于在会合服务器的帮助下直接连接两个节点。节点可以是任何计算机、智能手机或任何其他设备。就3g而言,

java - Java 中的非阻塞套接字写入与阻塞套接字写入

为什么有人更喜欢阻塞写而不是非阻塞写?我的理解是,如果你想确保另一方在write方法返回后得到TCP数据包,你只会想要阻止写入,但我什至不确定这是可能的。您将不得不刷新,而刷新将不得不刷新底层操作系统写入套接字缓冲区。那么非阻塞套接字写有什么缺点吗?就性能而言,拥有一个大的底层写套接字缓冲区是不是一个坏主意?我的理解是,底层套接字写入缓冲区越小,当底层套接字缓冲区已满且isWritable()返回false时,您就越有可能遇到缓慢/错误的客户端,并且必须在应用程序级别丢弃/排队数据包。 最佳答案 Myunderstandingist

Android NDK 网络问题 : TCP Connection fails

我在使用AndroidNDK时遇到了一些问题。我的项目需要用C语言编写的软件组件,这些组件可以通过TCP接收数据以在Android操作系统上执行。为此,我使用BSD套接字用C语言制作了一个简单的服务器和客户端,并且可以通过PC上的连接成功地来回发送消息。现在我已经将客户端代码移动到NDK中,并且无法从模拟器或实际的android设备连接到我的服务器。NDK编译时没有警告或错误,模拟器/手机在wifi上并且在list中启用了互联网权限。是什么赋予了?它所做的只是创建一个套接字,填写主机/端口信息并尝试连接:如果确实连接,则发送消息,否则返回错误。Android始终为连接返回负值此客户端代

c# - 联网的客户端-服务器应用程序建议

我正在尝试设计一个允许网络上的两个用户玩囚犯的应用程序困境博弈(http://en.wikipedia.org/wiki/Prisoner%27s_dilemma)。基本上,这涉及:游戏开始(第1轮)。玩家1选择合作或背叛。玩家2选择合作或背叛。然后显示彼此的决定第2轮开始等经过思考和搜索,我认为该应用程序应包含以下内容:接受传入tcp/ip连接的服务器类Gui客户端(独立程序)对于每个连接(最多2个),服务器将创建一个新的ConnectedClient类。此类将包含两个玩家的机器/身份的详细信息。Server类和ConnectedClient类将连接/订阅事件,这样它们就可以相互提醒

networking - 这个 wireshark 信息指的是什么

我是wireshark和一般网络的新手,但我正在监控我的应用程序的流量,我可以对其进行过滤,这样我就可以看到它何时主动传输它应该与服务器传输的数据,但wireshark显示这个:protocol=TCPlength=54info=56705>ms-wbt-server[ACK]Seq=1Ack=61Win=252Len=0每秒从我的应用程序触发到我的应用程序服务器。为什么我的应用程序每秒都在发送这些数据包?如果有任何帮助的话,这是一个c#.net应用程序。 最佳答案 这是一个TCPkeepalive数据包,不包含任何数据,但设置了A

networking - 通过 SSH 隧道访问 LDAP

我通过SSH(root访问)访问了我客户办公室网络内的一台机器。我正在我的计算机上编写一个需要集成到LDAP的PHP应用程序。LDAP服务器位于我客户端网络的另一台服务器上,不能从外部访问,但是我可以通过SSH连接到的服务器完美地访问它。我的问题是:无论如何我都可以创建一个隧道并在我的计算机上设置一个端口,以便使用我与网络上其中一台计算机的SSH连接将流量转发到LDAP服务器吗?谢谢!!!! 最佳答案 是的,ssh有一个“-L”选项来创建隧道。该选项采用3个参数,以冒号(:)分隔。本地监听端口,远程主机,远程端口。ssh-L9999

c# - 在 TCP 中接收数据

如果我在TCP中发送1000个字节,它是否保证接收方将“一起”获得整个1000个字节?或者他可能首先只得到500个字节,然后他会收到其他字节?编辑:问题来自应用程序的观点。如果1000字节在到达应用程序之前被重新组合成一个缓冲区..那么我不在乎它是否在途中被分割.. 最佳答案 参见TransmissionControlProtocol:TCPprovidesreliable,ordereddeliveryofastreamofbytesfromaprogramononecomputertoanotherprogramonanothe