如何关闭已经打开的端口?System.Net.Sockets.SocketException: 通常每个套接字地址 (协议/网络地址/端口) 只允许使用一次
大家好,我现在遇到了这样的问题,就是当端口已经打开时,会报这个错误:System.Net.Sockets.SocketException: 通常每个套接字地址 (协议/网络地址/端口) 只允许使用一次
我想在新建socket时,能不能先进行判断,如果我要用的端口如10001已经打开,我就关闭它然后再执行程序,不知道这如何实现?
以下是我的程序:
private static IPAddress LocalAddress = IPAddress.Parse("10.10.82.18");
private static int LocalPort = 10001;
private void Send( String message)
{
UdpClient sender = new UdpClient();
IPEndPoint groupEP = new IPEndPoint(GroupAddress,GroupPort);
try
{
byte[] bytes = Encoding.ASCII.GetBytes(message);
Socket server= new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
IPEndPoint ipep = new IPEndPoint(LocalAddress,LocalPort);
server.Bind(ipep);//这里报的错
...
...
}
catch (Exception e)
{
}
问题点数:50、回复次数:8Top
1 楼plean()回复于 2005-09-26 13:57:07 得分 0
有人知道吗?Top
2 楼dragonfly001(I want to fly!)回复于 2005-09-26 14:03:24 得分 0
簡單的方法就是建立連接前,關閉這個端口,無論它現在是否已經打開Top
3 楼plean()回复于 2005-09-26 14:24:06 得分 0
我也是这个意思,就是强制关闭,无论它是否打开。
但是如何关闭端口呢,我好像没有找到直接关闭的方法阿Top
4 楼plean()回复于 2005-09-26 15:31:21 得分 0
dingTop
5 楼lookfeng()回复于 2005-09-26 16:20:30 得分 15
如果是别的应用打开的,是不能关闭的吧
否则,你直接找到那个打开端口的socket,然后close不就OK了Top
6 楼flyboy20(往事如烟)回复于 2005-09-26 16:43:52 得分 0
呵呵 帮顶Top
7 楼YAOHE(吆喝)回复于 2005-09-26 16:48:06 得分 15
一个端口,在一个时间里,只能有一个监听,可以有多个连接!~Top
8 楼zhy0101(莠)回复于 2005-09-26 17:07:37 得分 20
你是在send里进行的端口邦定,也就是每次执行send方法时就会建立一个socket,如果没有在退出send时关闭socket,就会报错了。建议你:不要每次都建立socket,而是在程序一开始就建好,然后每次在send里使用,程序结束要关闭socket。对于现在的代码你写的不全,可以在catch后加上
finally
{
server.Close()
}
试试,保证一定关闭socket。Top
相关问题
- 请问在win2000 professional中如何关闭协议的端口?
- RTSP协议中建立连接的默认端口是多少?
- 能否提供常用的协议端口,如ftp是23,telnet 是21
- SIP协议:SIP协议对SIP消息大小和SIP的端口有什么限制和规定吗?
- 端口?
- 谁能告诉我,协议对应的端口号(所有的对应列表)?比如,http--80, ftp-21等等?
- 客户机的WinSock控件采用TCP协议,如何使用预设的固定的端口?
- 大讨论:有人知道用net send发消息是用的哪个协议哪个端口么?
- 用ado连接sqlserver在选择使用tcp/ip协议时如何指定连接使用的端口号???
- javamail中关于发送邮件的协议、服务器、端口的问题,请多帮忙!




