使用TCP打开端口然后读取和写入C#

时间:2018-06-08 10:51:40

标签: c# visual-studio tcpclient tcplistener networkstream

我正在编写一个程序 - 称之为A - 它将打开端口以便与不同的程序(例如Eclipse)通信 - 将其称为B.

所以每当我决定要打开一个新端口时,我会执行以下操作:

  1. 创建一个值为0的新TCP侦听器

    _listener = new TcpListener((IPAddress.Parse("127.0.0.1"), 0)
    

    所以它会在一个可用的端口上打开它。

  2. 获取已打开的端口号

    int newp = ((IPEndPoint)_listener.LocalEndpoint).Port
    
  3. 发送程序B关于将立即打开哪个端口的信息 - 到现有端口

  4. 执行阻止调用以接受客户端

    TcpClient client =_listener.AcceptTcpClient()
    
  5. 我可以看到(使用netstat -anb)端口正在“侦听”,但似乎没有建立连接,因为程序没有继续通信。

    此外,如果我尝试获取流以便写入该端口 - 它会失败并抛出异常。

    NetworkStream stream = _client.GetStream();
    stream.Write(...);
    

    非常感谢所有人!

0 个答案:

没有答案