Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个TCP流之间的镜像数据-VB.NET_.net_Vb.net_Http_Networking_Proxy - Fatal编程技术网

两个TCP流之间的镜像数据-VB.NET

两个TCP流之间的镜像数据-VB.NET,.net,vb.net,http,networking,proxy,.net,Vb.net,Http,Networking,Proxy,几天来,我一直在vb.net中创建一个透明的代理应用程序。直到现在一切都很顺利。。我很难找到将数据从客户端镜像到服务器的最佳方法,反之亦然 我试过多种不同的方法。这是我的最新作品。到目前为止,它工作得最好,但页面从未完成加载 Do Until NeedToClose = True If client.Connected = True Then If client.GetStream.DataAvailabl

几天来,我一直在vb.net中创建一个透明的代理应用程序。直到现在一切都很顺利。。我很难找到将数据从客户端镜像到服务器的最佳方法,反之亦然

我试过多种不同的方法。这是我的最新作品。到目前为止,它工作得最好,但页面从未完成加载

Do Until NeedToClose = True

                    If client.Connected = True Then
                        If client.GetStream.DataAvailable = True Then
                            Dim buffer(client.ReceiveBufferSize) As Byte
                            Dim length As Integer
                            Try
                                length = client.GetStream.Read(buffer, 0, buffer.Length) 'fills buffer with request
                                server.GetStream.Write(buffer, 0, length)
                            Catch ex As Exception

                            End Try
                        End If

                        If server.Connected = False Then
                            'client is holding connection open. server has already disconnected
                            stopWorker()
                        End If

                        If server.Connected = True Then
                            If server.GetStream.DataAvailable = True Then
                                Dim buffer(server.ReceiveBufferSize) As Byte
                                Dim length As Integer
                                Try
                                    length = server.GetStream.Read(buffer, 0, buffer.Length) 'fills buffer with request
                                    client.GetStream.Write(buffer, 0, length)
                                Catch ex As Exception

                                End Try
                            End If

                            If client.Connected = False Then
                                'server is holding connection open. client has already disconnected
                                stopWorker()
                            End If
                        End If


                    End If

                    If client.Connected = False And server.Connected = False Then
                        stopWorker()
                    End If
                Loop
可能不是实现这一目标的最佳方式。Try..Catch只是一个断点。我已经从客户端接收到连接,拉出主机属性,并连接到服务器。然后,我将从客户端收到的第一个请求发送到服务器。然后,您在上面看到的代码启动并开始转发请求和回复

有更好的方法吗?为什么页面无法完全加载?
谢谢!

事实证明,我上面发布的代码运行得非常好。我把这个问题追溯到程序其他部分的一些糟糕的多线程处理。一旦我解决了这个问题,页面开始加载

我还是很好奇。是否有更好或更快的方法在两个流之间传递数据