c - 客户端和服务器想同时通话时是否需要多线程?

标签 c multithreading sockets client-server posix

关于使用套接字进行客户端服务器通信,我有两个问题。假设在两种情况下只有一个客户。

1)我知道我们可以使用单个套接字在客户端和服务器之间发送和接收数据。但是在那种情况下,当服务器和客户端都尝试同时发送数据时会发生什么呢?

2)哪个是最好的模型?
i)使用单线程,单套接字进行发送和接收
ii)使用2个线程(一个用于发送,一个用于接收),单个套接字
iii)使用2个套接字和2个线程,一个用于发送,一个用于接收。

最佳答案

对于第一个问题,没有什么特别的事情发生。 TCP是全双工的,连接的双方都可以同时发送。

并且由于同时发送/接收没有问题,因此第二个问题中的第一个选择将是最简单的。

关于c - 客户端和服务器想同时通话时是否需要多线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14933247/

相关文章:

C编程: Error printing last line from an input file

c - 在 C 程序中使用 tcl 和 tk stub

c - 进程退出并在 Malloc 或 File 上返回值 3221225477

java - 对于写入固定大小数组的不同部分的并行线程,是否存在线程安全的 Java 数据结构?

windows - 是否可以在上下文/线程之间共享 opengl 帧缓冲区对象?

c++ - Windows C++组播发送

c# - 使用套接字通过代理将请求从客户端中继到服务器 C#

delphi - 改善旧系统(尤其是笔记本电脑(Delphi 6))上的Indy HTTP客户端性能?

c - 什么是双关语?类型双关如何与 C 中的 union 一起使用?

javascript - 如何检测 Node 进程/脚本是否已经在运行?