记录因粗心而创作的bug

很多时候遇到的bug并不难,也许因为提示比较陌生而让你以为这是一个没见过的bug,但仔细找找原因原来这个问题很简单,只是你太粗心了没注意到这点让bug产生了。这篇文章记录一下我因为各种粗心大意而导致的问题,警醒自己要保持一个良好的编码习惯不要再犯同样的错误浪费时间。

问题一 海康威视二次开发创建SOCKET出错

最近在使用海康威视的摄像头进行二次开发,在开始使用登陆功能时每次都提示错误44,错误提示如下图所示。


查了下海康威视的开发文档里的错误代码,44代表了创建SOCKET出错


部分登陆功能代码如下

 private int loginDevice()
	{
		// get instance
		m_oNetDvrDeviceInfoV30 = new NET_DVR_DEVICEINFO_V30();
		if (null == m_oNetDvrDeviceInfoV30)
		{
			Log.e(TAG, "HKNetDvrDeviceInfoV30 new is failed!");
			return -1;
		}
		Log.e(TAG, videoMsg.toString());
		String strIP = videoMsg.getsIp();
		int	nPort = Integer.parseInt(videoMsg.getsPort());
		String strUser =videoMsg.getsUser();
		String strPsd = videoMsg.getsPwd();
		Log.e(TAG, "[sIp=" + strIP + ", sPort=" + nPort + ", sUser=" + strUser
				+ ", sPwd=" + strPsd + "]");
		// call NET_DVR_Login_v30 to login on, port 8000 as default
		int iLogID = HCNetSDK.getInstance().NET_DVR_Login_V30(strIP, nPort, strUser, strPsd, m_oNetDvrDeviceInfoV30);
		if (iLogID < 0)
		{
			Log.e(TAG, "NET_DVR_Login is failed!Err:" + HCNetSDK.getInstance().NET_DVR_GetLastError());
			return -1;
		}
		if(m_oNetDvrDeviceInfoV30.byChanNum > 0)
		{
			m_iStartChan = m_oNetDvrDeviceInfoV30.byStartChan;
			m_iChanNum = m_oNetDvrDeviceInfoV30.byChanNum;
		}
		else if(m_oNetDvrDeviceInfoV30.byIPChanNum > 0)
		{
			m_iStartChan = m_oNetDvrDeviceInfoV30.byStartDChan;
			m_iChanNum = m_oNetDvrDeviceInfoV30.byIPChanNum + m_oNetDvrDeviceInfoV30.byHighDChanNum * 256;
		}
		
		Log.e(TAG, "NET_DVR_Login is Successful!");
		
		return iLogID;
	}

而错误的地方就在这里

int iLogID = HCNetSDK.getInstance().NET_DVR_Login_V30(strIP, nPort, strUser, strPsd, m_oNetDvrDeviceInfoV30);

我反复看了很久,这里在使用ip和端口号创建SOCKET失败,是不是我的ip和端口号错误了,但看了很多遍发现都没有错误,还想了很多其他跟IP和端口号有关的可能性原因,发现都没问题,最后还是不把注意力放在IP和端口号上了,就放在这一句代码上,想着想着,突然想到。。。。这个好像是要联网来着!!!!于是马上把联网权限给补上

<uses-permission android:name="android.permission.INTERNET"/> 

点击运行,,,发现终于可以了!!

一个十分简单的问题。。。。。。忏悔中。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值