1. NVRClientLib.RecordFile.cs
BuildRecordFileName(), file extention is ".264"
2. client\SWNetSDK.cs
StartPlayByServer
3. server\SWNetSDK.cs
Add 2 variable -->
private bool m_bRealPlaying = false;
private byte[] _headerBytes = null;
private byte[] _totalHeaderBytes = null;
StartPlay()
if (_hdev > 0)
{
if (!isRealPlaying && _realHandle > 0)
{
...
isRealPlaying = true;
private void ClientReadDataCallBack(
_totalHeaderBytes = new byte[nRet];
Array.Copy(szBuff, _totalHeaderBytes, nRet);
SendToClients()
try
{
if (!_header_sent_clients.Contains(_clients.Keys[i].ToString
()))
{
if (_totalHeaderBytes != null)
{
SWLogger.writeLog("SWNetSDK.SendToClients, send header
size: " + _totalHeaderBytes.Length.ToString());
_clients.Values[i].Send(_totalHeaderBytes,
_totalHeaderBytes.Length);
_header_sent_clients.Add(_clients.Keys[i].ToString());
}
}
SWLogger.writeLog("SWNetSDK.SendToClients, pPacketBuffer size:
" + nPacketSize.ToString());
_clients.Values[i].Send(pPacketBuffer, (int)nPacketSize);
public void Cleanup()
{
if (isInitOk)
{
_headerBytes = null;
_totalHeaderBytes = null;
_header_sent_clients.Clear();
public void RemoveClient(string socketId)
{
lock (_clientLock)
{
if (_clients.ContainsKey(socketId))
{
_clients.Remove(socketId);
if (onDevMsgRef != null)
{
onDevMsgRef.BeginInvoke(GetVideoKey(), " 客户端断开一个与[" +
GetVideoKey() + "]的连接 ", null, null);
}
}
if (_header_sent_clients.Contains(socketId))
_header_sent_clients.Remove(socketId);
}
}