可能重复:
Listening to Port 5060
我正在开发一个SIP客户端。我有一个问题。 我想听5060端口用于捕获SIP服务器消息。为此,我编写了一些东西。(另外我在程序中使用管理员权限)
但是我得到了SocketException:“尝试以其访问权限禁止的方式访问套接字”(本机错误代码:10013)......
我的代码:
private void ListenPort() {
WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);
TcpListener server = null;
Int32 port = 5060;
IPAddress localAddr = IPAddress.Parse("192.168.1.33");
server = new TcpListener(localAddr, port);
Byte[] bytes = new Byte[1000];
String data = null;
while (hasAdministrativeRight == true)
{
server.Start();
int i = 0;
while (1==1)
{
TcpClient client = server.AcceptTcpClient();
NetworkStream stream = client.GetStream();
data = null;
i = stream.Read(bytes, 0, bytes.Length);
data += System.Text.Encoding.ASCII.GetString(bytes, 0, i);
label3.Text += data;
this.Refresh();
Thread.Sleep(500);
}
}
}
你认为这个问题在哪里?
答案 0 :(得分:1)
您是否检查过其他程序是否已使用端口5060?这就是这个错误的意思。
答案 1 :(得分:1)
您需要在while循环和第一个AcceptTcpClient调用之前调用server.Start()外部。 也尝试使用IPAddress.Any而不是IPAddress.Parse(“192.168.1.33”)作为你的监听器ip
答案 2 :(得分:0)
确保未将任何其他 SIP服务器程序安装为使用相应端口的Windows服务。
键入netstat -an
,它会显示“监听”端口或尝试使用Google端口检查软件。
并检查您的SIP服务器配置是否通过TCP或UDP运行。