Tag: 套接字

如何configuration套接字连接超时

当客户端尝试连接到断开连接的IP地址时,超过15秒的时间长度超时…我们如何减less超时? 什么是configuration它的方法? 我用来build立套接字连接的代码如下: try { m_clientSocket = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress ip = IPAddress.Parse(serverIp); int iPortNo = System.Convert.ToInt16(serverPort); IPEndPoint ipEnd = new IPEndPoint(ip, iPortNo); m_clientSocket.Connect(ipEnd); if (m_clientSocket.Connected) { lb_connectStatus.Text = "Connection Established"; WaitForServerData(); } } catch (SocketException se) { lb_connectStatus.Text = "Connection Failed"; MessageBox.Show(se.Message); }

当你需要可靠的UDP时,你使用什么?

如果你有一个TCP连接可能太慢,UDP连接可能太不可靠的情况,你使用什么? 那里有各种标准可靠的UDP协议,你有什么经验? 请每个回复讨论一个协议,如果其他人已经提到了你使用的那个,那么就要考虑投票,如果需要的话可以使用评论来详细说明。 我对这里的各种选项感兴趣,其中TCP处于一个规模的一端,UDP处于另一端。 各种可靠的UDP选项都可用,并且每个都带有一些TCP到UDP的元素。 我知道TCP通常是正确的select,但是有一个替代scheme的列表通常可以帮助我们得出这个结论。 像Enet,RUDP等build立在UDP上的东西有各种各样的优点和缺点,你用过它们,你有什么经验? 为了避免疑问,没有更多的信息,这是一个假设性的问题,我希望能够得出一份回应清单,详细列出需要作出决定的人可以使用的各种选项和备选scheme。

检测TCP客户端断开

比方说,我正在运行一个简单的服务器,并从客户端accept()一个连接。 什么是最好的方式来告诉客户端何时断开连接? 通常情况下,客户端应该发送一个closures命令,但是如果手动断开连接或者完全失去networking连接呢? 服务器如何检测或处理这个?

“同行重置”是什么意思?

TCP连接上的“通过对等方重置连接”错误的含义是什么? 这是一个致命的错误还是只是一个通知或与networking故障有关?

无法通过套接字“/var/lib/mysql/mysql.sock”连接到本地MySQL服务器(2)

当我尝试连接到mysql时出现以下错误: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 有这个错误的解决scheme吗? 这背后的原因是什么?

Java套接字API:如何判断连接是否已closures?

我遇到了Java套接字API的一些问题。 我试图显示当前连接到我的游戏的玩家数量。 玩家连接时很容易确定。 但是,使用套接字API来确定玩家何时断开连接似乎并不是很困难。 在远程断开的套接字上调用isConnected()总是返回true 。 同样,在远程closures的套接字上调用isClosed()总是返回false 。 我已经阅读到,实际上确定一个套接字是否已经closures,数据必须写入输出stream,并且必须捕获一个exception。 这似乎是处理这种情况的一种非常不洁的方式。 我们只需要不断地通过networking发送垃圾信息来知道套接字何时closures。 有没有其他解决scheme?

java.net.SocketException:连接重置

我正在尝试从套接字读取以下错误。 我正在做的InputStream readInt() ,我得到这个错误。 仔细阅读文档,这表明连接的客户端部分closures了连接。 在这种情况下,我是服务器。 我有权访问客户端日志文件,并且不closures连接,实际上它的日志文件表明我正在closures连接。 那么有人知道为什么会发生这种情况吗? 还有什么要检查的? 当有地方资源达到阈值时,这是否会出现? 我注意到,我有以下行: socket.setSoTimeout(10000); 就在readInt() 。 有一个原因(长话短说),但只是好奇,有什么情况下,这可能导致指出的错误? 我的服务器运行在我的IDE中,而我恰巧把我的IDE卡在一个断点上,然后我注意到在我的IDE中我自己的日志中出现了完全相同的错误。 无论如何,只要提到它,希望不是一个红色的鲱鱼。 🙁

使用Java获取当前机器的IP地址

我试图开发一个系统,在不同的系统上运行不同的节点,或者在同一个系统的不同端口上运行不同的节点。 现在所有节点都创build一个带有目标IP的Socket作为称为引导节点的特殊节点的IP。 节点然后创build自己的ServerSocket并开始监听连接。 引导节点维护一个节点列表,并在被查询时返回它们。 现在我需要的是节点必须注册自己的IP到引导节点。 我尝试使用cli.getInetAddress()一旦客户端连接到引导节点的ServerSocket ,但没有工作。 我需要客户端注册其PPP IP,如果可用的话; 否则LAN IP如果可用的话; 否则,假设它是同一台计算机,它必须注册127.0.0.1。 使用代码: System.out.println(Inet4Address.getLocalHost().getHostAddress()); 要么 System.out.println(InetAddress.getLocalHost().getHostAddress()); 我的PPP连接IP地址是:117.204.44.192,但上面的返回给我192.168.1.2 编辑 我正在使用下面的代码: Enumeration e = NetworkInterface.getNetworkInterfaces(); while(e.hasMoreElements()) { NetworkInterface n = (NetworkInterface) e.nextElement(); Enumeration ee = n.getInetAddresses(); while (ee.hasMoreElements()) { InetAddress i = (InetAddress) ee.nextElement(); System.out.println(i.getHostAddress()); } } 我能够获得所有与所有NetworkInterface相关的IP地址,但是我怎么区分它们? 这是我得到的输出: 127.0.0.1 192.168.1.2 192.168.56.1 117.204.44.19

iPhone数据使用情况跟踪/监测

我已经search了这个主题,但发现很less的细节是有帮助的。 有了这些细节,我试图做一些代码如下。 注意:请将此post中的详细信息与其他post进行比较,然后将其标记为DUPLICATE,而不仅仅是主题。 – (NSArray *)getDataCountersForType:(int)type { BOOL success; struct ifaddrs *addrs = nil; const struct ifaddrs *cursor = nil; const struct sockaddr_dl *dlAddr = nil; const struct if_data *networkStatisc = nil; int dataSent = 0; int dataReceived = 0; success = getifaddrs(&addrs) == 0; if (success) { cursor = addrs; while (cursor != NULL) […]

套接字使用在一个摇摆的小程序

我应该用Java和Swing来创build一个服务器和客户端。我需要做一个套接字,从服务器到客户端,从客户端到服务器,并且会传递某种string。希望稍后有一个函数根据套接字中的string做几件事情。 出于某种原因,我找不到一个简单的代码示例,以简单的方式显示它是如何完成的。 任何人都有一个简单的例子,或者可以解释它是如何完成的?