iOS:如何获取 http 连接的源端口

Posted

技术标签:

【中文标题】iOS:如何获取 http 连接的源端口【英文标题】:iOS: how to get the http connection's source port 【发布时间】:2013-08-20 20:40:09 【问题描述】:

我使用 NSURLRequest 和 NSURLConnection 访问服务器:

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:self.url];
[request setHTTPMethod:@"PROPFIND"];
[request setValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];
...
NSURLConnection* conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[coon start];

我知道我们需要destination IPdestination port 来连接服务器;

问题是: 如何获取&设置我的http连接的source port? (只是意味着我需要我的 HTTP 连接的本地端口);服务器需要它来进行 NAT 设置。任何建议将不胜感激。

谢谢。

【问题讨论】:

我发现这个:***.com/questions/7614318/… 显然,除非在URL中指定端口号,否则由前缀确定,例如“http”(端口80),“https”(端口443) , "ftp" 等 我读过但似乎没有帮助。我的意思是我需要源端口而不是服务器的端口。我不完全了解 HTTP&&TCP/IP&&Socket。我只知道我可以为套接字绑定源端口,但找不到为 http 设置本地端口的方法。还是谢谢大家。 【参考方案1】:

最后,我必须做一些工作来创建我自己的自定义 HTTP,然后支持设置 HTTP 使用的套接字的酸端口。

【讨论】:

您能否详细说明您是如何做到的?其他人也在问类似的问题:***.com/q/31060498/4577867

以上是关于iOS:如何获取 http 连接的源端口的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 请求时如何获取底层套接字

在iOS中获取http代理的ip和端口

HTTP 的源端口是如何确定的? NAT中是不是有冲突? [关闭]

Boost asio socket:如何获取IP,连接的端口地址?

如何从 Handsontable 中的源数据中获取行

如何查看所有连接到HTTP或HTTPS端口的客户端