public IPEndPoint StartNeg(bool IsCaller, IPEndPoint[] local, IPEndPoint[] remote) { if (IsCaller) { bool done = false; for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { if (!done) { IPEndPoint from = local[i]; IPEndPoint to = remote[j]; RTPUDPClient.MySend(to.Address.ToString(), to.Port, "tst " + from.ToString()); string res = RTPUDPClient.MyReceive1(4505); if (res == "Success") { RTPUDPClient.MySend(to.Address.ToString(), to.Port, "fin " + from.ToString()); return(to); } } } } return(null); } else { top: string message = RTPUDPClient.MyReceive(4505); string mestype = message.Substring(0, 3); string remain = message.Substring(4); if (mestype.Equals("fin")) { return(new IPEndPoint(IPAddress.Parse(remain.Substring(0, remain.IndexOf(':'))), Convert.ToInt32(remain.Substring(remain.IndexOf(':') + 1)))); } else if (mestype.Equals("tst")) { IPEndPoint to = new IPEndPoint(IPAddress.Parse(remain.Substring(0, remain.IndexOf(':'))), Convert.ToInt32(remain.Substring(remain.IndexOf(':') + 1))); RTPUDPClient.MySend(to.Address.ToString(), to.Port, "Success"); goto top; } } return(null); }
public string TestRecv() { return(RTPUDPClient.MyReceive1(4507)); }