草庐IT

c - 在 TCP/UDP 套接字中绑定(bind)

绑定(bind)函数用于为套接字描述符分配一个名称(一个sockaddr结构)。为什么TCP服务器需要它而不是TCP客户端?为什么botUDP客户端和服务器需要它?我也在UDPClient中不使用bind()编写了正确工作的代码。我不明白为什么bind()没有被普遍使用,即在上述所有情况下。 最佳答案 绑定(bind)只是必需的,如果没有其他方法让计算机知道将数据包发送到哪个程序。对于无连接程序,这只是接收端。请看socketconnect()vsbind()这个帖子。解释工作比我能做的要好得多。如果你有任何问题之后。欢迎提问:)

c - 哪种是实现 TCP/UDP 服务器的最佳方式?在线程或进程中处理每个传入请求

您好,我正在实现TCP服务器。请求是函数的名称。我需要执行运行服务器的某个库中存在的函数。库函数可能会导致段错误或浮点异常。我打算在一个单独的进程中实现函数调用操作。所以任何崩溃都会导致子进程死亡。我的问题是在进程中执行这样的操作还是使用线程更好?还有人请告诉我如何在崩溃时重新启动我的服务器应用程序。我写了restart.conf并保存在/etc/init/下,但它仅在系统重新启动时才重新启动,而不是在应用程序崩溃时重新启动。我不想在do-while中做这件事 最佳答案 大约25年前,当决定如何在Web服务器中实现CGI脚本时,提出

C#实现TCP和UDP通信

文章目录UDP发送UDP接收TCP发送TCP接收C#在命名空间System.Net.Sockets中对伯克利套接字提供了良好的封装,提供了完善的TCP和UDP通信功能。从编程的角度出发,TCP和UDP最大的区别是,TCP存在TcpClient和TcpLinster两个对象用于信息的传递,二者一发一收,十分完备。而UDP则只有一个类UdpClient,换言之,UDP通信是不分服务端和客户端,通信双方对等。UDP发送至少在形式上,UDP比TCP更简单,所以先从UDP讲起。考虑到通信那肯定是有发有收才行,如果只用C#自己,那么肯定得上个多线程什么的才能跑通。为了避免问题复杂化,故推荐使用这款NetA

networking - 在 UDP 的情况下,MTU 重传如何工作

众所周知,UDP不支持重传和其他一些东西。我们也知道像MTU这样的东西基本上以下列方式工作——当源点和目标点之间的路径上的网络设备之一不支持某种大小的数据包时,它就会丢弃它。对于TCP,这不是问题——它已经知道握手后的MSS总是小于MTU(我说的对吗?),因此不可能发送大小大于MTU的数据包。但是,我想知道在UDP情况下它是如何工作的?正如我已经说过的,此协议(protocol)中没有重传,也没有MSS这样的东西。那么当数据包因超过MTU而被丢弃时会发生什么?或者它只是因为MTU性质才起作用(它实际上属于IP层,而不是像UDP或TCP这样的传输层协议(protocol))?所以IP层以

java - 点对点与服务器客户端的实时游戏

我正在构建一个需要用户之间实时同步的游戏,目前我正在使用tcp没有延迟,而且速度不够快。游戏支持15个并发用户,服务器每20毫秒向用户发送一次数据,如果有任何东西要发送,发送的数据最大为1个用户400字节,其他用户发送30字节,用户每50毫秒向服务器发送一次数据。在考虑解决方案时,我想为什么不向服务器发送每个用户的连接数据,他会将“其他”连接数据发回给他们,而在运行游戏时每个用户将直接向所有其他用户发送他当前的信息使用udp.第二种方法是保持当前的服务器客户端方式并将tcp更改为udp什么会更快?它与当前的tcp客户端服务器速度有什么不同吗? 最佳答案

tcp - 如何通过 tcpip/udp 发送/接收 nmea 字符串

我有一个gps接收器,它可以将数据(使用gprs连接)发送到服务器www.example.com。现在我需要一些东西来从www.example.com接收这些数据(gpsnmea字符串)(可能是为了监听某个端口......),解析这些信息并将其存储到我的数据库中。我对php和mysql有一定的了解。所以,问题是——是否可以用php和mysql来完成?如果是的话,你能指出我应该从哪里开始吗?如果没有,你能给我一些其他的建议吗?非常感谢! 最佳答案 前面的www表示http。这意味着您必须运行自己的网络服务器。但是您可能需要调查一下您的

vb.net - 远程进程/应用程序监控的示例代码

全部我在这里寻找一些灵感,客户要求我构建一个简单的远程进程监控应用程序,该应用程序具有smtp通知功能,当受监控的进程关闭或恢复在线时。任何人都可以指出一些示例代码的方向来帮助我入门。我已经简要地将.net远程处理视为一种潜在的开发路径,根据我对其工作原理的理解,远程处理体系结构将同时需要客户端和远程服务器组件(尽管我对此不是100%确定),但是如果是这种情况,那么它将不符合要求,因为其中一项基本要求是不能在要监视的服务器上部署额外的软件。或者,如果您知道已经完成的“轻量级”产品可以提供此类功能,那么这也可能有效。亲切的问候保罗·J。 最佳答案

c# - TCP是否适合由定期位置更新组成的网络游戏编程?

假设您被迫在UDP套接字上使用TCP套接字(即:Silverlight坚持的东西)。是否可以创建一个多人游戏,包括向最多8个玩家发送实时位置更新,以便每个玩家都可以实时准确地看到所有其他玩家,即使UDP是更好的协议(protocol)?鉴于此选项,您是否愿意选择不同的技术(即:Java),只是为了获得UDP支持?谢谢,尼克 最佳答案 只要几毫秒不重要,我认为没有理由使用UDP。 关于c#-TCP是否适合由定期位置更新组成的网络游戏编程?,我们在StackOverflow上找到一个类似的问

Ruby Sockets 查找消息的发送和接收时间

ruby中的套接字类是否有一个预定义的函数可以让我记录发送和接收消息的时间?此刻我正在发送或接收消息,然后立即记录时间。虽然这是有效的,但我想知道是否有人知道更好的方法?这是我目前的做法。这是基于我必须编写的ClientTCP类。服务器以类似的方式布置。defsend_mess@n.timesdo@client.print(@message)@sent_time_arr如果您能提供任何帮助,我们将不胜感激 最佳答案 抱歉,标准套接字库无法做到这一点。您可以尝试覆盖套接字类上的read()和write()方法,但您现在所做的似乎也有效

c - getsockopt 类似 TCP_INFO 的 UDP 统计信息

我使用的是Linux内核2.6.32(x86_64),可以通过将TCP_INFO传递给getsockopt并接收tcp_info来获取TCP统计信息struct,在/usr/include/netinet/tcp.h中定义。我可以获得类似的UDP统计信息吗?(可能更少,因为没有内置的拥塞控制和重传等。但我对我能得到的任何统计数据都很满意) 最佳答案 TCP_INFO的字面意思是TCP的信息。UDP没有信息的原因是它是无状态的。没有保证传输,不是rtf,没有窗口大小,没有太多信息可提供。如果你真的想获取一些额外的信息,请查看man2r