我正在为TCP流寻找可靠的STUN解决方案。我曾尝试过STUNT(美国康奈尔大学)和XSTUNT(美国台湾大学)。但是它们看上去既旧又无用。
我要做的是通过C#在两个不同网络中的两个客户端之间传输文件。如果您有以下两种解决方案,请告诉我:1-针对C#的基于UDP的客户端/服务器解决方案2-任何基于TCP的STUN服务器
我正在使用Wireshark网络协议分析器1.12.2(Os:Windows).是否可以使用此软件从tcpdump过滤消息事务ID的stun数据包?提前致谢.
我会尽量简短。
我希望在两个java应用程序之间创建通信(稍后将传输到android)而不通过服务器。因此,我花了几周时间四处寻找,经过大量工作后我发现了 stun 和ice4j。我在这里找到了如何使用ice4j的最佳解释,它几乎向我展示了将stun服务器添加到代理中需要做什么(我真的不知道代理是什么,只是它管理我与STUN的通信和 TURN),通过这段代码:
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.ice4j.Transport;
import org.ice4j.TransportAddress;
import org.ice4j.ice.Agent;
import org.ice4j.ice.IceMediaStream;
import org.ice4j.ice.harvest.StunCandidateHarvester;
public class ice4jTesting {
public static void main(String[] args) {
Agent agent = new Agent();
String[] hostnames = new String[] {"jitsi.org", "numb.viagenie.ca", "stun.ekiga.net"};
for(String hostname: hostnames) {
try {
TransportAddress address;
address = new TransportAddress(InetAddress.getByName(hostname), 3478, Transport.UDP);
agent.addCandidateHarvester(new StunCandidateHarvester(address));
} catch (UnknownHostException ex) {
Logger.getLogger(SimpleStun.class.getName()).log(Level.SEVERE, null, ex);
}
}
IceMediaStream stream = agent.createMediaStream("audio"); …Run Code Online (Sandbox Code Playgroud) 在 WebRTC 信令过程中,我必须通过向 STUN 服务器发出请求来找到我自己的公共 IP 地址和端口。但它真的需要这么复杂吗?
难道我不能只向子网的路由器发送请求并获取其 IP 地址和它为我打开的端口吗?或者更好的是,我直接将我的公共地址存储在我的计算机中,每当它发生变化时路由器都会通知我。浏览器会提供一个API来直接获取这个公共地址。无需使用 STUN 服务器。我们为什么不这样做呢?
感谢您的帮助。
好的,最近我需要使用 WebRTC 创建一个用于视频语音等的应用程序。
因此,在查看了一些库之后,我发现 SimpleWebRTC 看起来非常漂亮:https : //github.com/andyet/SimpleWebRTC
所以我感兴趣的是如何实现 STUN/TURN 服务器?(如果有人能用简单的英语解释差异,那就太好了!)而且还有身份验证机制。目前,我的应用程序联系我的数据库并登录用户等,但 stun and turn 服务器将是私有的,并且不以任何方式参与身份验证过程。
所以基本上:
请注意,这是针对混合应用程序的,因此我将为此使用 JavaScript/AngularJS。我选择 SimpleWebRTC 的主要原因。
谢谢!
我使用 webRTC 来建立与其他浏览器的网络浏览器实时通信。为了确保此连接始终可靠,我想设置自己的 STUN/TURN 服务器。我决定在 Azure VM(Ubuntu 服务器)上使用 coturn。我按照此文档在 Azure https://www.microsoft.com/developerblog/2018/01/29/orchestrating-turn-servers-cloud-deployment/上设置了 coturn 。
根据 [Trickele ICE][1] [1]: https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/我的 STUN 服务器工作,我得到了积极的结果。
每当我尝试使用 STUN/TURN 服务器建立网络摄像头连接时,它都不起作用。
webRTC协议会话统计:
Local SDP
v=0
o=mozilla...THIS_IS_SDPARTA-58.0.2 8794114299540424628 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint:sha-256 8B:A5:5A:36:D7:42:B0:DE:D8:FB:3B:AC:7A:41:AE:D1:F2:86:71:66:CB:99:79:54:08:9B:B2:97:DC:54:D7:E6
a=group:BUNDLE sdparta_0 sdparta_1
a=ice-options:trickle
a=msid-semantic:WMS *
m=audio 52254 UDP/TLS/RTP/SAVPF 109 9 0 8 101
c=IN IP4 192.168.9.1
a=candidate:0 1 UDP 2122252543 192.168.9.1 52254 typ host
a=candidate:1 1 UDP 2122187007 192.168.67.1 52255 typ host
a=candidate:2 1 UDP 2122121471 192.168.1.151 52256 …Run Code Online (Sandbox Code Playgroud)