`
myoldman
  • 浏览: 86138 次
  • 性别: Icon_minigender_1
  • 来自: 福建福州
最近访客 更多访客>>
社区版块
存档分类
最新评论

close socket前一定要小心啊

 
阅读更多
这几天调试一个linux底下的服务器下了如下代码。
close(simSocket);
close(simRtcpSocket);

发现运行过程中随机出现,其他socket链接莫名其妙被关闭,导致重发消息。
后来才发现是close之后没有吧simSocket设置为0,并且close之前没有检查simSocket是否为0导致,关闭了其他socket句柄。

后来修改成如下代码后解决
	if(simSocket > 0) {
		close(simSocket);
		close(simRtcpSocket);
		simSocket = 0;
		simRtcpSocket = 0;
	}


写代码一定要严谨啊,不严谨一个小疏忽要浪费很多时间。
分享到:
评论

相关推荐

    SSH异常总结

    例如,开发者可能会不小心在URL周围加上了不必要的引号,导致Mybatis无法识别驱动。解决这类问题的方法是,仔细检查配置文件中的相关参数,确保没有多余的字符,尤其是引号,保证参数格式正确无误。 其次,关于外键...

    Socket聊天室源程序

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); //设置框架的大小 this.setSize(faceSize); //设置运行时窗口的位置 Dimension screenSize = Toolkit.getDefaultToolkit()....

    PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...

    如果在迁移或重新配置数据库时,不小心更改了socket文件的位置,而又没有在php.ini文件中做相应的修改,就可能导致连接问题,因为PHP脚本无法找到正确的socket文件路径。解决这类问题的方法通常包括: - 修改...

    linux进程间通信 教程

    5. **共享空间**:共享内存允许进程直接访问同一块内存区域,效率高但需小心管理。`shmget()`、`shmat()`和`shmdt()`等函数用于操作共享内存。 6. **套接口(Socket)**:套接口不仅支持同一主机上的进程间通信,还...

    UNIX环境高级编程

    例如,`open`, `read`, `write`, `close`等函数用于文件操作;`fork`, `exec`, `wait`, `exit`等用于进程控制;`signal`, `sigaction`等用于信号处理。掌握这些系统调用对于编写高效、稳定、可移植的UNIX程序至关...

    cpp代码-centos添加多IP

    4. **系统调用**:除了直接操作配置文件,还可以利用系统调用如`sys/socket.h`中的函数,或者通过`system()`函数执行shell命令如`ifconfig`来动态添加IP。但这通常需要对系统内核和网络接口的工作原理有深入了解。 ...

    java 写的 qq软件 客户端 服务端

    Socket socket; ObjectOutputStream output;//网络套接字输出流 ObjectInputStream input;//网络套接字输入流 ClientReceive recvThread; //建立菜单栏 JMenuBar jMenuBar = new JMenuBar(); //建立菜单...

Global site tag (gtag.js) - Google Analytics