若主机是电脑加采集卡,又无路由器,就比较简单,采集卡系统里有个网络服务功能,进入后可以直接申请一个免费域名,提示申请成功后,只要监控端连网,外网就可以通过IE输入你申请的域名浏览监控画面,但你用来远程监控的电脑有个小小的设置,就是打开浏览器后,点击--工具--internet选项--安全--自定义级别--然后在“下载未签名的Activex控件”下的“启用”前打上勾,就OK了,当然,采集卡配送的驱动里有个客户端软件,就是用来远程监控的,如果用来远程监控的主机装了客户端,那访问时就只要打开客户端软件就可以了。如果你的电脑联网是通过路由器,那就还需要几个步骤,首先你得把电脑之前的自动获取IP改为指定IP,可以随便定义一个,然后在路由器里做几个端口映射,(端口号采集卡应该有说明,各种型号的卡不一样)就是进入路由界面后在虚拟服务器里填入你指定的主机IP和端口号后,启用后就可以了。
如果你用的是录像机,那就必须要加个路由器,设置方法基本上一样,一般录像机都有自己的IP,你只要把电脑的内网IP设置成跟录像机的IP在一个网段,但不要重复就可以,然后在路由器上做录像机的端口映射,方法同上,但IP号是录像机的IP而不是电脑的IP。这之后也要申请域名,可以在路由器上申请,里面有个DDNS服务就是了,当然,选配路由器的时候要看有无这个功能。域名申请成功后外网就能直接键入域名访问。
总的来说,就是服务器端要做端口映射(路由器),客户端通过IE访问需启用下载未签名的Activex控件。采集卡或是录像机的说明书很重要。
适时监听IP端口,,你起用一个新的线程让它循环就可以了,但是同一IP不能连接2次.Thread thread1 = new Thread(new ThreadStart(accp1))
thread1.IsBackground = true
thread1.Start()
private void accp1()
{
sfdu = 0
ggg:
accsock1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
myserver1 = new IPEndPoint(myIP, sdkgh)//初始化主机对向(ip和断口)
sock1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)//初始化Socket使用方法不变
sock1.Bind(myserver1)//绑定主机(myserver)是以初始化的主机
sock1.Listen(50)//监听的端口
int t = 1
while (t == 1)
{
try
{
accsock1 = sock1.Accept()//接受客户端的连接请求
if (accsock1.Connected)
{
//this.textBox3.AppendText("与客户端1500建立连接!")
Thread thread1 = new Thread(new ThreadStart(round1))
thread1.IsBackground = true
thread1.Start()
}
}
catch (ObjectDisposedException eee)
{
t = 2
goto ggg
}
catch (SocketException eeee)
{
t = 2
goto ggg
}
}
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)