`
myoldman
  • 浏览: 83225 次
  • 性别: 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;
	}


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

相关推荐

    close socket

    close socket

    ftp客户端ftpclient纯C语言winsock实现socket编程

    case 421:closesocket(ts);sys=0;return 421; case 530:sys=1;return -1; case 500: case 501: case 504: case 226:return -1; case 200:break; default:return -1; } ds=createDataSocket(); ...

    socket 动态链接库

    closesocket(glb_SockTCPServer); glb_SockTCPServer = NULL; return res; } OutputDebugString("绑定成功!"); res = listen(glb_SockTCPServer,5); if(res) { OutputDebugString("监听失败!"); ...

    基于socket的简单通讯工具

    简单的C#Socket工具,Socket.Connect 方法:建立到远程设备的连接 public void Connect(EndPoint remoteEP)(有重载方法) Socket.Send 方法:从数据中... Socket.Close 方法:强制 Socket 连接关闭 public void Close();

    易语言socket连接超时例程

    易语言socket连接超时例程源码,socket连接超时例程,子程序1,socket,htons,inet_addr,Connect,closesocket,WSAStartup,setsockopt,ioctlsocket,select

    基于Socket的java网络编程

    基于Socket的java网络编程, ... (4) 关闭Socket.(在实际应用中,并未使用到显示的close,虽然很多文章都推荐如此,不过在我的程序中,可能因为程序本身比较简单,要求不高,所以并未造成什么影响。

    python 实现socket通信实例之client.py

    因此socket在使用时也是完全符合这个哲学的,它涉及到listen()、bind()、accept()、write()/read()、close()等基本的类似于文件操作的功能函数。 上述Socket功能函数是从传输层协议TCP或者UDP中抽象出来的,一个基本...

    Linux的socket编程详解

    创建准备阶段 服务器或客户端: 使用 gethostbyname() 来通过域名获取 IP 地址和端口 服务器: 创建 Socket ...服务器或客户端: 使用 close() 关闭套接字 服务器或客户端: 使用 shutdow() 关闭连接(但不会关闭套接字)

    Java Socket 编程源代码示例

    Socket socket = accept(); while (true) { new ServerReaderThread(socket); new ServerWriterThread(socket); } } finally { close(); } } public static void main(String[] args) ...

    JAVA实现SOCKET聊天

    socket.close(); } catch (IOException ignored) { } } } public void run() { String message = ""; try { handlers.addElement(this); while (keepListening) { message = (String) dataIn....

    易语言socket取网站IP

    易语言socket取网站IP源码,socket取网站IP,取IP地址_,gethostbyname,WSAStartup,inet_addr,socket,getpeername,Connect,GetDateFormat,GetLocalTime,GetTimeFormat,recv,closesocket,WSACleanup,CreateThread,...

    易语言Socket编程之Select模型

    易语言Socket编程之Select模型源码,Socket编程之Select模型,CreateSocket,FD_CLR,FD_ISSET,FD_SET,FD_ZERO,ThreadAcceptProc,ThreadProc,GetClientInfo,htonl,ntohl,ntohs,htons,WSAStartup,WSACleanup,closesocket,...

    Windows下的tcp通信

    通信完成后调用closeSocket关闭accept捕获到的socket。如果不需要等待任何客户端连接, 直接用closeSocket关闭自身的socket。 客户端:建立socket,通过端口号和地址确定目标服务器,使用connect连接到服务器, ...

    Golang socket server

    defer listener.Close() fmt.Printf("socket 启动成功;Network=%s,Address=%s", server.Network, server.Address) server.OnStart(server) go server.CheckClient() for true { conn, err := listener....

    Socket通信实例代码

    a. 建立一个套接字 b. 绑定本机的IP和端口 c. 如果是TCP,因为是面向连接的,所以要利用ListenO()方法来监听网络上是否有人给自己发东西;如果是UDP,因为是无连接的,所以来者不拒。...能close的就close吧。

    实验三Socket通信实验报告.doc

    Socket类要调用SetSocketOption函数加入和 离开某一个组。UdpClient类有直接的加入和离开某个组的成员函数可以调用。而向某个 组发信息,则没有什么特殊的,只需把发送数据的目的地址设为组播地址就可以了。 发送端...

    vc socket 编程

    sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的...7:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

    socket应用小程序

    几个很小的socket程序(源码)给其中一个小例: package cn.com.socket; import java.io.*; import java.net.*;... socket.close(); }catch(IOException e){ System.out.println("Error: " + e); } } }

    CLOSE

    CLOSE

    TCPsocket套接字.zip

    socket() --> bind() --> listen() --> accept() --> recv() --> close() 创建socket --> 绑定socket和端口号–> 监听端口号–> 接收来自客户端的连接请求–> 从socket中读取字符–> 关闭socket 客户端: socket() ...

Global site tag (gtag.js) - Google Analytics