C# UDP如何使用代理访问网络?

时间:2022-12-16 17:01:58
公司某软件的 Server 端是用 C# 自己写的,Client 端以 UDP 与 Server 进行通信。

但是某些客户使用HTTP代理上网,这些客户的 Client 发送的请求 Server 收不到,个人猜测是因为代理导致。

所以,我想问问 C# UDP 如何使用代理使 Client 能访问 Server?

9 个解决方案

#1


谁知道你说的是哪些“某些用户”?谁知到它们怎样写的?

#2


你的软件本身的客户端和服务器端必须支持http代理服务器

#3


引用 1 楼 sp1234 的回复:
谁知道你说的是哪些“某些用户”?谁知到它们怎样写的?


Client 和 Server 都是我们写的,基于UDP,但是过不了代理。

#4


引用 2 楼 devmiao 的回复:
你的软件本身的客户端和服务器端必须支持http代理服务器


所以,我在这里问的就是如何让它支持HTTP代理。你在用我的问题来回答我。

#5


引用 3 楼 fudiwei 的回复:
Quote: 引用 1 楼 sp1234 的回复:

谁知道你说的是哪些“某些用户”?谁知到它们怎样写的?


Client 和 Server 都是我们写的,基于UDP,但是过不了代理。


再说明白点儿,基于System.Net.Sockets.UdpClient。一个管收,一个管发,就这么简单。这还用贴代码?

#6


引用 4 楼 fudiwei 的回复:
Quote: 引用 2 楼 devmiao 的回复:

你的软件本身的客户端和服务器端必须支持http代理服务器


所以,我在这里问的就是如何让它支持HTTP代理。你在用我的问题来回答我。


比较困难。要么你需要在http上自己实现整个ip协议栈,要么你hack这个程序,让它支持代理。

#7


引用 6 楼 devmiao 的回复:
Quote: 引用 4 楼 fudiwei 的回复:

Quote: 引用 2 楼 devmiao 的回复:

你的软件本身的客户端和服务器端必须支持http代理服务器


所以,我在这里问的就是如何让它支持HTTP代理。你在用我的问题来回答我。


比较困难。要么你需要在http上自己实现整个ip协议栈,要么你hack这个程序,让它支持代理。


好吧,那我想了解一下诸如迅雷、QQ这种在设置里可以设置使用代理服务的是如何实现的?

#8


找了三天资料,没什么头绪,似乎 System.Net.Sockets.UdpClient 没什么方法可以通过代理来发送请求。

倒是在System.Net.WebClient 下找到了 Proxy 这个属性。

现在暂时采用一种笨拙的方法,Server 端写两个,一个是 UDP 服务器,一个是 HTTP 服务器。

Client 端判断用户是否使用代理,如果没有正常 UdpClient 发送 UDP 请求;如果使用了,给 WebClient 的 Proxy 赋值并发送 HTTP 请求。

盼望大神有更好的解决方式。

#9


引用 7 楼 fudiwei 的回复:
Quote: 引用 6 楼 devmiao 的回复:

Quote: 引用 4 楼 fudiwei 的回复:

Quote: 引用 2 楼 devmiao 的回复:

你的软件本身的客户端和服务器端必须支持http代理服务器


所以,我在这里问的就是如何让它支持HTTP代理。你在用我的问题来回答我。


比较困难。要么你需要在http上自己实现整个ip协议栈,要么你hack这个程序,让它支持代理。


好吧,那我想了解一下诸如迅雷、QQ这种在设置里可以设置使用代理服务的是如何实现的?


这些软件本身可以通过http传输。这不是与生俱来的。

#1


谁知道你说的是哪些“某些用户”?谁知到它们怎样写的?

#2


你的软件本身的客户端和服务器端必须支持http代理服务器

#3


引用 1 楼 sp1234 的回复:
谁知道你说的是哪些“某些用户”?谁知到它们怎样写的?


Client 和 Server 都是我们写的,基于UDP,但是过不了代理。

#4


引用 2 楼 devmiao 的回复:
你的软件本身的客户端和服务器端必须支持http代理服务器


所以,我在这里问的就是如何让它支持HTTP代理。你在用我的问题来回答我。

#5


引用 3 楼 fudiwei 的回复:
Quote: 引用 1 楼 sp1234 的回复:

谁知道你说的是哪些“某些用户”?谁知到它们怎样写的?


Client 和 Server 都是我们写的,基于UDP,但是过不了代理。


再说明白点儿,基于System.Net.Sockets.UdpClient。一个管收,一个管发,就这么简单。这还用贴代码?

#6


引用 4 楼 fudiwei 的回复:
Quote: 引用 2 楼 devmiao 的回复:

你的软件本身的客户端和服务器端必须支持http代理服务器


所以,我在这里问的就是如何让它支持HTTP代理。你在用我的问题来回答我。


比较困难。要么你需要在http上自己实现整个ip协议栈,要么你hack这个程序,让它支持代理。

#7


引用 6 楼 devmiao 的回复:
Quote: 引用 4 楼 fudiwei 的回复:

Quote: 引用 2 楼 devmiao 的回复:

你的软件本身的客户端和服务器端必须支持http代理服务器


所以,我在这里问的就是如何让它支持HTTP代理。你在用我的问题来回答我。


比较困难。要么你需要在http上自己实现整个ip协议栈,要么你hack这个程序,让它支持代理。


好吧,那我想了解一下诸如迅雷、QQ这种在设置里可以设置使用代理服务的是如何实现的?

#8


找了三天资料,没什么头绪,似乎 System.Net.Sockets.UdpClient 没什么方法可以通过代理来发送请求。

倒是在System.Net.WebClient 下找到了 Proxy 这个属性。

现在暂时采用一种笨拙的方法,Server 端写两个,一个是 UDP 服务器,一个是 HTTP 服务器。

Client 端判断用户是否使用代理,如果没有正常 UdpClient 发送 UDP 请求;如果使用了,给 WebClient 的 Proxy 赋值并发送 HTTP 请求。

盼望大神有更好的解决方式。

#9


引用 7 楼 fudiwei 的回复:
Quote: 引用 6 楼 devmiao 的回复:

Quote: 引用 4 楼 fudiwei 的回复:

Quote: 引用 2 楼 devmiao 的回复:

你的软件本身的客户端和服务器端必须支持http代理服务器


所以,我在这里问的就是如何让它支持HTTP代理。你在用我的问题来回答我。


比较困难。要么你需要在http上自己实现整个ip协议栈,要么你hack这个程序,让它支持代理。


好吧,那我想了解一下诸如迅雷、QQ这种在设置里可以设置使用代理服务的是如何实现的?


这些软件本身可以通过http传输。这不是与生俱来的。