求助:通常每个套接字地址通常每个套接字地址(协议/网络地址/端口)只允许使用一次

necessary 2012-05-11 02:44:01

“UDP_Server = new UdpClient(localPort); //创建一个新的端口号” 这一句这里,总是报错:通常每个套接字地址通常每个套接字地址(协议/网络地址/端口)只允许使用一次
这是一个即时通讯的程序。

using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.Windows.Forms;
using System.Threading;

namespace QQClass
{
public partial class UDPSocket : Component
{
private IPEndPoint ServerEndPoint = null; //定义网络端点
private UdpClient UDP_Server = new UdpClient(); //创建网络服务,也就是UDP的Sockets
private System.Threading.Thread thdUdp; //创建一个线程
public delegate void DataArrivalEventHandler(byte[] Data, IPAddress Ip, int Port); //定义了一个托管方法
public event DataArrivalEventHandler DataArrival; //通过托管在控件中定义一个事件
private string localHost = "127.0.0.1";
[Browsable(true), Category("Local"), Description("本地IP地址")] //在“属性”窗口中显示localHost属性
public string LocalHost
{
get { return localHost; }
set { localHost = value; }
}

private int localPort = 11000;
[Browsable(true), Category("Local"), Description("本地端口号")] //在“属性”窗口中显示localPort属性
public int LocalPort
{
get { return localPort; }
set { localPort = value; }
}

private bool active = false;
[Browsable(true), Category("Local"), Description("激活监听")] //在“属性”窗口中显示active属性
public bool Active
{
get { return active; }
set //该属性读取值
{
active = value;
if (active) //当值为True时
{
OpenSocket(); //打开监听
}
else
{
CloseSocket(); //关闭监听
}
}
}


public UDPSocket()
{
InitializeComponent();
}

public UDPSocket(IContainer container)
{
container.Add(this);

InitializeComponent();
}

protected void Listener() //监听
{
ServerEndPoint = new IPEndPoint(IPAddress.Any,localPort); //将IP地址和端口号以网络端点存储
if (UDP_Server != null)
UDP_Server.Close();

UDP_Server = new UdpClient(localPort); //创建一个新的端口号

UDP_Server.Client.ReceiveBufferSize = 1000000000; //接收缓冲区大小
UDP_Server.Client.SendBufferSize = 1000000000; //发送缓冲区大小

try
{
thdUdp = new Thread(new ThreadStart(GetUDPData)); //创建一个线程
thdUdp.Start(); //执行当前线程
}
catch (Exception e)
{
MessageBox.Show(e.ToString()); //显示线程的错误信息
}
}

private void GetUDPData() //获取当前接收的消息
{
while (active)
{
try
{
byte[] Data = UDP_Server.Receive(ref ServerEndPoint); //将获取的远程消息转换成二进制流



if (DataArrival != null)
{
DataArrival(Data, ServerEndPoint.Address, ServerEndPoint.Port);
}
Thread.Sleep(0);
}
catch { }
}
}

private void CallBackMethod(IAsyncResult ar)
{
//从异步状态ar.AsyncState中,获取委托对象
DataArrivalEventHandler dn = (DataArrivalEventHandler)ar.AsyncState;
//一定要EndInvoke,否则你的下场很惨
dn.EndInvoke(ar);
}


public void Send(System.Net.IPAddress Host, int Port, byte[] Data)
{
try
{
IPEndPoint server = new IPEndPoint(Host, Port);
UDP_Server.Send(Data, Data.Length, server);
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}

private void OpenSocket()
{
Listener();
}

private void CloseSocket()
{
if (UDP_Server != null)
UDP_Server.Close();
if (thdUdp != null)
{
Thread.Sleep(30);
thdUdp.Abort();
}
}
}
}

...全文
1776 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vvvliubo 2012-05-19
  • 打赏
  • 举报
回复
我也遇到这种情况,如何解决?
mizuho_2006 2012-05-11
  • 打赏
  • 举报
回复
常见的错误。指定的端口被占用,关闭其他占用该端口的程序再运行就正常了。
necessary 2012-05-11
  • 打赏
  • 举报
回复
按1楼的做了,没有再报错,但程序还有其它异常,等我确定解决了,再来结贴,一定会结的!
ztenv 2012-05-11
  • 打赏
  • 举报
回复
应该是被占用了,在cmd窗口使用netstat -ano查看一下UDP协议所使用的端口及进程的PID,然后找到这个进程,
travo 2012-05-11
  • 打赏
  • 举报
回复
就是端口号被占用了,要么被别的程序占用,要么自己上次占用未Close()。
建议取系统当前可用端口,即:
private int localPort = 0;
iSee视频监控 v5.2 视频监控软件使用说明书 版权所有 翻录必究 2009年10月1日 Ver:01.01.05 注意事项 首先,感谢您选用我公司最新产品。 在使用本监控卡之前,请详细阅读本说明书所涉及的相关事项,熟悉 硬件、软件各部分的功能后,方能使用,以确保该系统为您发挥最佳功能。 否则一切后果自负。 本说明书将向您详细阐述全实时“视频监控系统”的安装、操作、设 置和网络使用方法。 本系统工作主机供电电压为220V_10%,如果在电压不稳或者干扰大 的场合,请您选用优质稳压电源(即UPS),保证系统正常良好的工作状态。 本系统在安装、拆卸视频采集卡时,必须将主机处于完全断电状态, 否则主板上残留的电压将损坏采集卡。 本系统可切换D1与CIF分辨率,切换分辨率设置后,在主界面必须关 闭通道视频,重新打开通道视频,设置才能生效。 本系统主机工作于常温(-10_3℃~55_2℃)、清洁的环境,并且保持 良好的通风状态。 本系统软件属于我公司专有产品,未经同意,请勿复制,否则影响机 器稳定概不负责,并将通过有关法律渠道追究盗版责任。 功能特点(H.264压缩) 压缩方式:H.264/MPEG 4; 显示分辨率:1024_768、1280_1024、16:9宽屏、16:10宽屏; 预览分辨率 (可调) :704_576(PAL制),740_480(NTSC制); 352_288(PAL制),370_240(NTSC制); 录像分辨率(所见即所得):704_576(PAL制), 740_480(NTSC制); 352_288(PAL制),370_240(NTSC制); 单机容量支持12路D1、48路CIF; 支持单画面、4画面、9画面、16画面、20画面、25画面显示,可全屏显示,支持自动 翻页; 多画面实时显示/录像/回放功能,支持多协议云镜控制,支持多种报警盒实现联动报警; 手动录像、连续录像、定时录像、动态录像、事件录像、联动报警录像等多种录像方式; 可以设置每个通道的显示名称; NTSC/PAL两种视频显示制式可选, 25帧/秒实时预览、录像、回放; 视频图像属性调节功能,使图像更清晰。 视频录像图像质量有多种等级可调,以改变存储文件大小,方便不同场合应用。 视频移动报警录像功能,报警录像灵敏度、预录像时间、延迟录像时间可调,支持声音 报警输出。 智能检索,可按摄像镜头年/月/日/时间段或长时间连续检索回放,自动检索报警录像, 能区分录像事件。 具有局部放大功能,可逐帧回放,快速播放,慢速播放,常规播放。 回放时可进行图片抓拍功能,回放时文件备份功能、文件剪辑功能。 可进行远程监控,远程控制云镜、色彩、手动录像、布撤防、重启计算机等控制工作。 支持现今最大容量的硬盘,并支持安装多个大容量的硬盘。 硬盘管理可以通过对最大使用硬盘和硬盘最小预留空间的设置使硬盘能够得到充分合理 的使用。 自动创建日志文件(用户操作日志、系统日志、远程控制日志),便于查询操作记录。 系统可任意设置定时关机,定时重启功能,保证系统运行的高稳定性。 可设定开机自动运行监控软件,断电自动关闭程序,来电自动重启,自动恢复录像。 硬件、软件经过严格的拷机试验,稳定可靠。 系统硬件配置要求低,48路同时录像显示时,CPU的占用率低于75%。 系统能有效防止用户多次重复运行监控系统导致系统崩溃的情况。 目录 第一部分 软件安装与卸载..............................................................................................................6 1.1 系统要求 ..................................................................................................................................................6 1.1.1 硬件要求(推荐) ................................................................................
机场内通系统的设计方案 1. 内通系统技术规格与要求 1.1系统概述 1) 这个机场内通系统按照功能划分应分为以下子系统,内部调度指挥系统,内话系统和旅 客求助系统。 2) 内部调度指挥系统主要提供提供机场客货运营各生产保障单位内部通话联络、相互通讯 、指挥调度等用途。系统充分保证生产运营一线内部调度信息联络顺畅、通讯迅捷、调 度有序,从而提高工作效率,提高机场服务水平。 3) 内话系统主要提供航站楼相关业务柜台、柜台与各航空公司现场办公室、机场营运部门 之间的联络功能。 4) 旅客求助系统既在机场的各个公共场所设置求助终端和在机场设立一个旅客求助呼叫中 心,每个需要帮助的旅客可在任意一个求助终端处得到呼叫中心统一高质量的语音服务 。 5) 内通系统主要由内通服务器或主机、用户操作终端机(包括:数字台式广播终端机、数 字台式普通用户终端机、数字壁挂式用户终端机和噪音消除终端等)及其各种专用通讯 接口和相关软硬件设备组成。本期终端容量按xxx门配置。单个系统终极容量不小于500 0门,可多系统无限扩容。 1.2 系统总体技术和功能要求 1) 应采用国内外先进的成熟的符合航站楼工作特点和国际标准及中国国家相关标准的系统 。内通设备需采用最新技术生产的全数字程控交换机,通话迅速敏捷,话音清晰不失真 ,运行稳定可靠。具有适合不同环境多种系列化通信终端,充分保证生产运营一线相互 联络和指挥调度的需要。 2) 内通系统建立一套独立的内部调度通讯交换网,星型结构,供航站楼内各业务部门之间 指挥调度、相互通讯及其他用途(如本地广播)使用。 3) *系统应采用适合机场应用的专业内通系统,不能使用基于程控交换机的电话系统。 4) *系统应采用全数字内通设备,即设备所有控制和音频信号都要是数字化传输和处理。 5) *内通系统具有高通话质量,整个系统的音频带宽不小于7KHz,所有终端设备在免提状态 下应具有开放式全双工通话功能。 6) *系统具有故障监测能力,对于系统的所有部件或装置都能够进行自动诊断监测,发现故 障、报警、及时登记并可以提供打印报告(配备PC、打印机)。对于公共功能部件,故 障定位到板卡和功能模块;对于外围接口部件,故障定位到端口。 7) *终端/话站应具有麦克风- 扬声器音频检测功能,即话站扬声器定时会发出一个音频检测信号, 该信号应为带数字编码的音频,话站麦克风会拾取到该信号并解码,以随时保证话站各 部件工作正常。 8) *终端和主机以及主机和主机之间除了用双绞线联网以外,还可以使用通用的计算机网络 来连接。重要的设备之间应可采用冗余的连接方式。 9) *通过计算机网络传送的语音信号应采用专用编码如IoIP协议,不能采用公开的编码协议 如VoIP等以防止窃听和篡改。 10) *系统具有灵活的通讯方式,具有多方会议、全呼和组呼及其应答、呼叫转移、呼叫代答 、遇忙回叫、遇忙在线等待、遇忙强插与强拆、调度终端不示忙、自动呼叫分配(ACD) 、主操作呼叫队列和多路话音等特殊功能,以实现电话会议、发布命令、广播通知、寻 呼找人、紧急呼叫等特殊服务。并可通过编程设置,其操作简便,话音清晰。 11) 具有多路实时录音功能,对各重要业务部门的通话,实时录音记录,以便随时重放通讯 实况。可靠性高,复原度高、保密性好、不可删改,查询方便。 12) *具有多种不同接口功能,可以同其他通讯电子设备兼容。接口方式应具有干接点,RS2 32/422和TCP/IP三种方式; 13) 系统总的性能要求:技术先进、可靠性高、高话务量、高忙时呼叫处理能力、设备平均 无故障时间长、通讯快捷、音质好、模块化、接口种类多、功能齐全、便于维护。 1.3内部通讯系统接口要求 1.3.1内通系统与集成系统的接口功能 1)通过内部调度通讯系统与集成系统的接口,内部调度通讯系统接口工作站实时将其前 端用户终端机的发来的登机广播和最后登机广播以及开闸、关闸等控制信息,传递给集 成系统中央数据库后,发布到广播系统和航显系统,自动触发登机广播和登机显示通知 。 2)组成与结构 l 接口种类 发布信息接口可支持TCP/IP协议等 l 服务器方 集成系统服务器及AODB l 客户机方 内部通讯系统接口工作站及接口软件 1.3.2内通系统与时钟系统的接口功能 内通主机应能支持SNTP时钟同步协议,通过TCP/IP方式与机场时钟系统取得时间同步。 1.3.3内通系统与现有交换机及电话虚拟公网系统的接口 内通系统通过用户环路或中继接口建立与现有交换机及电话虚拟公用通信网接口xx个, 作为内通用户与现有交换机及电话虚拟公网用户的备用手段,根据编程设定,不同权限 的用户可以拨打内话、本地、国内长途或国际长途电话。 1.3.4 内通系统与录音系统的接口 通过内部通讯系统与录音系统的接口,可以在内通用户
Re:CCNA_CCNP 思科网络认证 PAT NAT 端口地址转换 与端口映射======================# 本章课程大纲        公网地址和私网地址        NAT应用场景        静态NAT  :static  地址转换        动态NAT  :dynamic地址转换        PAT        :端口地址转换        端口映射 :port map        在Windows上同时实现的NAT和端口映射 # 私网地址三类 A类:10.0.0.0                                255.0.0.0(1网段) B类:172.16.0.0 -172.31.0.0         255.255.0.0(16网段) C类:192.168.0.0-192.168.255.0  255.255.255.0(255网段) # NAT 的使用场景        NAT的最初的目的是允许把私有IP地址映射到公网地址,以减缓IP地址空间的消耗。        当一个组织更换它的互联网服务提供商ISP,但不想更改内网配置方案时,NAT同样很有用途。        以下是适于使用NAT的多种情况:         企业内网接入Internet节省公网地址         单向访问         大方向:内网访问互联网(互联网上主机不能够访问内网主机)         小方向:同单位实现两个网段之间单向访问(涉密部门能够访问其他部门,反之不可)         增加一个网段          避免在主干路由器增加到这个网段的路由         在Windows上实现的NAT和端口映射 # 网络地址转换的类型        下面介绍一下NAT的三种类型。         静态NAT 是为了在私网地址和公网地址间,允许一对一映射而设计的。         或者IPv4和IPv6之间的转换(典型)         不节省公网地址,故公网地址的利用效率不高,         无任何安全性,外网可以通过公网地址直接攻击内网主机,好像只增加路由器的工作         适用场景类似代理,可以较方便的更换主机,而无需修改路由器的配置         故应用不够广泛...         动态NAT 可以实现映射一个未注册 IP地址到注册IP地址池中的一个注册IP地址。         多对一,或多对多         比较PAT优势:避免被误认为攻击而被封ip地址         不太节省地址,应用不广泛         复用是最流行的NAT配置类型,也被称为端口地址映射(PAT)。         通过使用PAT,可实现上千个用户仅通过一个真实的全球 IP地址连接到Internet。         缺点:增加延迟,消耗路由器性能 # 端口映射(port mapping) 允许Internet上的计算机通过企业路由器的公网IP地址访问到内网的服务器------------------------------------------------         

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧