服务器80/21端口用telnet测试正常,但运行时提示“每个套接字地址只允许使用一次”错误。

用telnet测试万网提供的服务器80/21端口正常,但运行时提示“每个套接字地址只允许使用一次”错误。若把端口换为4567就能正常运行,但此端口没有开放。部分源代码如下

            IPEndPoint localep = new IPEndPoint(IPAddress.Parse("121.42.134.161"), int.Parse("80"));
            listener = new TcpListener(localep);
            listener.Start();//监听出错了
            //接受连接请求的异步调用
            AsyncCallback callback = new AsyncCallback(AcceptCallBack);
            listener.BeginAcceptSocket(callback, listener);


图片说明
不知问题出在哪里?怎麽解决?

7个回答

80上网,21是ftp服务。这端口都是已经被使用的,肯定不能被你用来做其他服务的监听端口。4567是空闲端口,所以可以用。
telnet测试能够访问和服务监听是两码事。

我要做的项目是android手机从该服务器下载或上传数据。经测试万网提供给我的服务器只有80/21/25开放,如果不能用它们来做其他服务的
监听端口那我该怎麽办?这个问题已困扰我1周了,问过万网的售后工程师也未得到解决。

既然开放了端口,你服务器又是你的程序,你可以用netstat -natp 查询端口是否被其它进程占用。
如果没有,就可以运行你的程序在对应端口提供服务。

"telnet测试能够访问和服务监听是两码事。"不明白是什麽意思?

你是不是在同一个IP和端口上重复绑定Socket了?

该代码在VS2010环境下调试,用电信提供的任意宽带IP,端口21/25/4567都很正常。当把IP换为万网提供的固定IP,端口80/21/25,并发布后运行都会出现“通常每个套接字地址(协议/网络地址/端口)只允许使用一次”相同错误。问过万网的售后工程师,他说用telnet测试80/21/25这3个端口都能打开,让我检查程序。

是否万网服务器提供的80/21/25端口都不能用来做其他服务的监听端口?若是这样的话,那是否意味着socket传输无法实现了?万网售后工程师告知
我用的这个服务器的配置是无法修改的,是统一标准配置。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问