Linux环境中使用socket进行UDP和TCP多线程通信无法关闭socket
在Linux下,使用QT编程网络通信,为提高通信效率,使用原始socket进行网络编程,在QT线程中经常出现线程无法退出,原因来源于socket无法关闭。 线程处理如下: void communicationClass::run() { // 开启数据处理线程 #ifdef Q_OS_LINUX //配置服务器信息 bzero(&m_sServer_addr, sizeof(m_sServer_addr)); m_sServer_addr.sin_family = AF_INET; //设置为IPV4通信 m_sServer_addr.sin_addr.s_addr = htonl(INADDR_ANY); //设置目的ip m_sServer_addr.sin_addr.s_addr = inet_addr(m_strSendIP.toStdString().c_str()); //设置目的端口去链接服务器 m_sServer_addr.sin_port = htons(m_ui16Port); //配置本地信息 bzero(&m_sLocal_addr, sizeof(m_sLocal_addr)); m_sLocal_addr.sin_family = AF_INET; //设置为IPV4通信 //loc_addr.sin_addr.s_addr = htonl(INADDR