- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对 C 中的网络概念还很陌生,想知道如何遵循。
假设我有客户端和服务器。
在客户端,我有这样的代码:
1. send(connfd, var1, var1Size);
2. read(connfd, &x, size1);
3. close(connfd);
服务器也做一个接收和一个发送,例如,
1. read(connfd, &var, size);
2. send(connfd, var1, varSize);
我的问题如下。在客户端,在客户端执行发送
之后——需要一些时间在数据到达服务器之前,在服务器读取数据并发回之前对吧?
那么在客户端代码运行 send
之后,会不会发生这样的事情呢?直接跳转到read
,但是此时,服务器已经尚未准备好回复并将其发回 --所以客户端的读取调用(第 2 行)将什么也接收不到。连接会终止吗? (程序将退出)。
它是如何发生的?
最佳答案
这真的与 C 无关,它与网络协议(protocol)和 I/O 的工作方式有关。
答案是,除非你特意使 I/O 非阻塞,send()
和 recv()
调用是同步的,即它们将在必要时阻塞,以等待可用的传出带宽或传入数据。
因此您描述的情况通常不会发生,连接不会终止。
关于c - C 上是否可以进行同步网络通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22322897/
我目前正在编写的程序有一个小问题。 首先让我解释一下它应该实现什么。 它与聊天程序非常相似,因此从根本上来说,它具有一个信息类(我称它为Packet),该信息类存储有关某些内容的数据,这些数据发生在客
同一角色的多个角色实例是否可以通过从 RoleEnvironment 获取所有这些实例监听的特定端点的 VIP(虚拟 IP)地址来相互通信?如果是这样,则返回的 VIP 可以负载平衡到调用者(Role
概述 ET框架的消息机制贯彻始终,包含Entity消息(Awake,Update ...),自定义(Customer)消息,网络消息等。而ET系统的进程包含了客户端、Gate等各种类型的服务器
我正在尝试设置一个 Docker Swarm,其中容器使用 Overlay Network 进行通信,但我可以让它工作 我正在使用包含 Docker Engine 1.12.1 的 HypriotOS
我是一名优秀的程序员,十分优秀!