【问题标题】:How does two-way communication with sockets work?使用套接字的双向通信如何工作?
【发布时间】:2012-12-10 14:34:24
【问题描述】:

我开始使用 C# 进行套接字编程。我查看了几个示例程序,它们打开一个套接字,从套接字获取一个流,并使用相同的流从客户端读取数据并将数据写入客户端。这究竟是如何工作的?我原以为必须有两个单独的流——一个供服务器读取,一个供它写入。 socket如何区分服务器要读取的数据和服务器要写入的数据?

【问题讨论】:

  • 你在寻找什么协议的套接字 - UDP 或 TCP ?
  • @JSinh 因为两者的答案都是一样的,所以你的问题毫无意义。

标签: sockets


【解决方案1】:

内部有两个缓冲区 - 您可以读取的传入数据和已写入的传出数据。您排空第一个缓冲区,实现通过从套接字读取重新填充它。您将数据推入第二个缓冲区,然后实现通过写入套接字将其耗尽。

【讨论】:

  • 代码如下:
    Stream s = new NetworkStream(soc); StreamReader sr = 新的 StreamReader(s); StreamWriter sw = 新的 StreamWriter(s);
    我们正在从同一个流中创建一个读取器和一个写入器...这两个缓冲区如何区分?
  • 正如我所说,在内部。当您写入流时,将使用输出缓冲区。当您尝试从流中读取时,字节来自输入缓冲区。
猜你喜欢
  • 1970-01-01
  • 2013-12-01
  • 2015-10-15
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 2011-10-12
  • 2018-04-26
  • 1970-01-01
相关资源
最近更新 更多