stream_sender.go 565 B

12345678910111213141516171819202122232425
  1. package sender
  2. import (
  3. "v2ray.com/core/app"
  4. "v2ray.com/core/common/net"
  5. "v2ray.com/core/transport/internet"
  6. )
  7. type StreamSender struct {
  8. config *StreamSenderConfig
  9. }
  10. func NewStreamSender(config *StreamSenderConfig, space app.Space) *StreamSender {
  11. return &StreamSender{
  12. config: config,
  13. }
  14. }
  15. func (s *StreamSender) SendTo(destination net.Destination) (internet.Connection, error) {
  16. src := s.config.Via.AsAddress()
  17. return internet.Dial(src, destination, internet.DialerOptions{
  18. Stream: s.config.StreamSettings,
  19. Proxy: s.config.ProxySettings,
  20. })
  21. }