CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

如何关闭已经打开的端口?System.Net.Sockets.SocketException: 通常每个套接字地址 (协议/网络地址/端口) 只允许使用一次

楼主plean()2005-09-26 13:13:04 在 .NET技术 / C# 提问

大家好,我现在遇到了这样的问题,就是当端口已经打开时,会报这个错误: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中关于发送邮件的协议、服务器、端口的问题,请多帮忙!

关键词

  • .net
  • 端口
  • socket
  • server
  • 关闭
  • 地址
  • 打开
  • ipendpoint
  • 程序
  • 使用

得分解答快速导航

  • 帖主:plean
  • lookfeng
  • YAOHE
  • zhy0101

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo