sockets相关内容
我目前正在创建一个与多个 arduino 板通信的服务器软件.由于硬件原因,我使用的是 UDP 协议.我有一个非常简单的机制,可以在大多数情况下在包裹丢失时重新发送包裹.我现在有两个问题: UDP 数据包在没有 Internet 访问、大约 20 个 arduino 和一台计算机的网络中丢失的可能性有多大?是否还需要重新发送方法? 有没有一种方法可以模拟此网络中的 UDP 数据包丢失,
..
我在我的 C 程序中使用 recvfrom() 来接收来自多个客户端的 UDP 数据包,这些客户端可以使用自定义用户名登录.一旦他们登录,我希望他们的用户名与唯一的客户端进程配对,以便服务器通过数据包的来源自动知道用户是谁.如何从使用 recvfrom() 收到的数据包中获取此信息? 解决方案 #include #include #inclu
..
情况:我的代码基本上被入侵到 Linux 内核的驱动程序中.我想在用户空间中的应用程序被触发到主系统之前通知它们值得注意的原始事件. 解决方案的步骤:我在这里找到了一个从内核空间发送 UDP 数据包的好例子:http://kernelnewbies.org/Simple_UDP_Server.他们使用 INADDR_LOOPBACK 作为目标地址,这正是我想要的. 由于这是中断上下文,
..
如果我纯粹将 UDP 用于进程间通信(即在 1 个系统中,不涉及网络),我可以认为它是可靠的吗?还是我还需要担心丢包等问题? 注意这是一个实践问题,而不是理论问题.如果答案因操作系统而异,请说明具体情况,尤其包括 Windows、Linux 和 Mac. 编辑:不,它不可靠——下面的例子. 感谢当前答案为我指明了正确的方向. 此代码在 Windows 8.1 上丢弃了一个数据包
..
问题跟进原始套接字的数据包碎片 如果我有一个这样实现的原始套接字: if ((sip_socket = socket(AF_INET, SOCK_RAW, IPPROTO_RAW))
..
我目前在使用 UDP 和 Python 套接字模块时遇到问题.我们有服务器和客户端.当我们向用户发送数据时,就会出现问题.用户可能通过客户端崩溃、ISP 断开连接或其他一些不正确的方法关闭了与服务器的连接.因此,可以将数据发送到关闭的套接字. 当然,对于 UDP,您无法判断数据是否真的到达或是否已关闭,因为它不在乎(至少,它不会引发异常).但是,如果您发送数据并且它被关闭,您会以某种方式获取
..
我正在尝试使用 UDP 在 C++ 中的 Android 上创建一个 unix 域套接字服务器和客户端.我需要客户端向服务器发送一条消息(“hi"),然后服务器需要从那里向客户端发送数据.我已经成功创建了双方的套接字,并且我能够在服务器上从客户端接收到一条短消息.但是服务器上的 recvfrom(..) 不会填充 struct sockaddr *src_addr, socklen_t *addr
..
我一直在尝试在作为客户端的 UWP 应用和作为服务器的 .NET 桌面应用之间设置客户端服务器.我使用 UDP 数据报作为两者之间的消息传递系统. 这是我的 UWP 代码,用于在端口 22222 的 localhost IP 上侦听数据报: 私有异步 void listenToServer(){//设置 UDP 监听器socketListener = new DatagramSocket(
..
当我尝试此代码时,我只收到 TCP 消息: 从套接字导入 *从选择导入选择def read_tcp(s):而真:客户,地址 = s.accept()数据 = client.recv(8000)客户端.close()打印 "Recv TCP:'%s'" % 数据def read_udp(s):而真:数据,地址 = s.recvfrom(8000)打印 "Recv UDP:'%s'" % 数据定义运
..
我在 linux 上有一个 client.c server.c.在两者上我都初始化了一个套接字: sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) 在我添加的服务器中: listen_addr.sin_family = AF_INET;listen_addr.sin_port = htons(端口);listen_adrr.sin_addr.
..
我有一个客户端和一个服务器与 C 中的数据报 (UDP) 通信.客户端发送 5 个消息,并在接收到消息后,服务器将消息发回.在客户端完成接收消息之前,接收和发送消息都很棒.在服务器发回所有 msgs 后,它使用 close() 终止.所以来自客户端的 recvfrom() 应该返回 0,对吧? 假设 recvfrom() 应该在服务器端 close() 时返回 0,它会返回 -1,错误资源暂
..
我通过sendto发送一个UDP数据包,然后通过recv收到应答.如果recv没有收到回复,程序收到不进行.但是,udp 数据包可能会丢失,或者由于某种原因,数据包可能无法传递,从而导致程序卡在 recv 行.我想知道如果没有数据包到达,例如一分钟,如何为 recv 设置超时,然后跳过该行并继续执行代码? 我没有粘贴完整的代码,因为它是一个通用的 udp 代码,我的问题与唯一的 recv 有
..
我正在处理课堂作业问题.我想启动一个侦听文件请求的 UDP 服务器.它打开文件并使用 UDP 将其发送回请求客户端. 这是服务器代码. //创建 UDP 套接字if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {perror("无法创建套接字");退出(-1);}//配置套接字memset(&server, 0, sizeof s
..
3 条不同的消息以不同的速率发送到同一个端口: 消息 大小(字节) 每发送一次传输速度 高 232 10毫秒 100Hz 中等 148 20ms 50Hz 低
..
我有一个使用数据报套接字交换消息的服务器-客户端应用程序.我最初将缓冲区大小设置为 1024 字节,因为我不知道消息的长度.当我发送小于 1024 字节的内容时,我的字符串的其余部分显示为一些奇怪的字符(空字符或者我不确定它们是如何被调用的).这是一个屏幕: 客户端代码:byte[] buf = ("这是另一个数据包.\n").getBytes();DatagramPacket packet
..
我想在客户端实现带有选择功能的非阻塞套接字.但它没有按预期工作.在下面的代码中,它永远不会遇到 else , rv 始终为 1 并且当套接字上没有任何内容时,应用程序会停止一段时间,并在套接字上有其他消息时继续.我不希望这种行为,我希望客户端在套接字上没有任何内容可接收时将消息发送回服务器. fd_set readfds;fcntl(sd, F_SETFL, O_NONBLOCK);而(1){F
..
使用 SO_RCVBUF 调用 getsockopt 将返回套接字接收缓冲区的分配大小. 我很想知道在调用 recv 或 recvfrom 之前是否可以查询缓冲区中实际有多少数据报包(或字节)?如果有帮助,我可以接受 Linux 特定的答案.有问题的套接字是 UDP,但我怀疑它对 TCP 无关紧要. 我问的原因只是为了测试和调试目的.我正在尝试验证我对 setsocktop(SO_RC
..
我完全是网络新手,但是我是一名 c/c++ 程序员,并且正在使用 Objective-c(这是针对 OSX/iPhone). 我正在尝试学习如何使用 cfsocket 发送带有 UDP 套接字的魔术包.我已经看到有 AsyncUDPSocket 库之类的库,但是我不想使用这些库. 我试图查看苹果的 UDPecho 文件,但作为初学者,它确实让我感到困惑.我用谷歌搜索了很多,我把下面的代
..
您有多个网络适配器. 将 UDP 套接字绑定到本地端口,无需指定地址. 在其中一个适配器上接收数据包. 如何获取收到数据包的适配器的本地IP地址? 问题是,“接收适配器的 IP 地址是什么?"不是我们在 中获得的发件人地址 receive_from( ..., &senderAddr, ... ); 打电话. 解决方案 您可以枚举所有网络适配器,获取它们的 IP 地址
..
..