多线程同时使用同一个socket时返回错误码10038 [问题点数:100分,结帖人haltwang]

Bbs1
本版专家分:49
结帖率 90.71%
Bbs4
本版专家分:1896
Blank
黄花 2015年4月 Linux/Unix社区大版内专家分月排行榜第二
Bbs1
本版专家分:49
socket 10038错误
最近编写服务器程序,游戏服经常与登录服莫名其妙的断开,<em>错误码</em><em>10038</em>(无效的套接字),而这个套接字是在程序启动的时候创建并连接的,并没有关闭掉。 网上搜索看了这篇文章,顿时明白。http://hi.baidu.com/gensoft/item/716dc9cd59dd817aced4f81b 原因是windows套接字不能被关闭多次。而游戏服在客户端连接的套接字上关闭多次,导致与登录服务器连
windows socket 编程:bind 错误码10038 如何解决?
#include #include #include #include #pragma comment(lib
select函数,一直显示10038问题,可是我的Socket创建成功了的啊
#include "stdafx.h" using namespace std; typedef struct _SOCKET_INFORMATION { CHAR Buffer; //发送和接受数据
多线程socket出错10038
做了一个<em>多线程</em><em>socket</em>程序(框架是SDI) 碰到如下问题rn只要把鼠标移到"打开”或者“保存”等按钮就出错,但是如果鼠标不移到上述按钮就运行正常rnrn下面是代码片断rnCUdpSocket 是继承于CBlockingSocket。rnrnWSADATA wsaData;rnint wsaret=WSAStartup(0x101,&wsaData);rnCUdpSocket udp;rnudp.UDPCreate("192.168.1.4",1003); //192.168.1.4 是我的IPrnudp.UDPStartTread();rnrnCUdpSocket udp2;rnudp2.UDPCreate("192.168.1.4",1004);rnudp2.UDPStartTread();rnrnvoid CUdpSocket::UDPCreate(const char* pchIP, const USHORT ushPort)rnrn Create(SOCK_DGRAM);rn CSockAddr addr1(pchIP, ushPort);rn addr=addr1;rn Bind(addr);rnrnrnint CBlockingSocket::ReceiveDatagram(char* pch, const int nSize, LPSOCKADDR psa, const int nSecs)rnrn ASSERT(m_hSocket != NULL);rn FD_SET fd = 1, m_hSocket;rn int nFromSize = sizeof(SOCKADDR);rn int nBytesReceived = recvfrom(m_hSocket, pch, nSize, 0, psa, &nFromSize);rn if(nBytesReceived == SOCKET_ERROR)rn rn int aa=WSAGetLastError(); //<em>10038</em>rn throw new CBlockingSocketException("ReceiveDatagram");rn rn return nBytesReceived;rnrnrnint aa=WSAGetLastError(); //<em>10038</em> 查了下rnmsdn:rnAn operation was attempted on something that is not a <em>socket</em>. Either the <em>socket</em> handle parameter did not rnreference a valid <em>socket</em>, or for select, a member of an fd_set was not valid. rn
多线程使用同一个socket同步的问题?
由于要求,<em>socket</em>客户端需要绑定固定的IP和端口,在<em>多线程</em>处理数据的时候,就不能在每个线程中创建<em>使用</em>自己的<em>socket</em>,只能<em>使用</em><em>同一个</em>公用的<em>socket</em>。这样<em>使用</em>会有问题么?有没有其他更好的办法?rn场景是这样:主线程不断扫描某张表里的未处理的数据,并发往服务端处理,为了保证一个线程的失败不影响其他线程发送数据,所以考虑了<em>多线程</em>。
多线程使用同一个SOCKET有没有同步的问题
<em>多线程</em><em>使用</em><em>同一个</em>SOCKET有没有同步的问题。
x64平台下,select函数老返回错误码10038的问题!
最近需要把一个项目一直到64位机器上,因为历史原因,结构体都是采用1字节对齐.rn32位程序没问题,但是到64位机器上,就老<em>返回</em><em>10038</em>错误;rn如果改成采用结构体默认(8字节)对齐方式,select正常;rnrn我尝试自定义一个fd_set的结构体,加上保留字段,使得1字节和8字节的大小一致,依然不能解决问题,求高手指点,不胜感激!rntypedef struct my_fd_set rn unsigned int fd_count; /* how many are SET? */rn unsigned int reserved; /* reserved */rn SOCKET fd_array[FD_SETSIZE]; /* an array of SOCKETs */rn my_fd_set;
多线程同时在同一socket使用udp发送数据?
RT。udp是用户数据报,每个消息是独立的,那多个线程能否<em>同时</em>在同一<em>socket</em>上发送udp报文?我知道tcp是不可以的。
c++ socket error 10038错误
<em>socket</em> error <em>10038</em>错误是说<em>socket</em>无效或者被kill掉了。 原因: 错误代码: int RecvThread(SOCKET* lpParameter,py::function caminfocall) { SOCKET *sockClient = lpParameter; while (1) { RecStruct data...
遇到一SOCKET 10038无效SOCKET 错误,在网上查了好长时间,仍没能解决,大家指点啊。。。。
server :   #define RECV_POSTED 0#define SEND_POSTED 1char Buffer[1024];typedef struct _PER_HANDLE_DATA{ SOCKET Socket;  //该结构是用于向端口传送套接字的}PER_HANDLE_DATA,*LPER_HANDLE_DATA;typedef struct
socket 服务器端程序recv()会有一定概率出现10038错误
我写了一个<em>socket</em> 服务器程序,其中监听线程常驻,接收线程在客户端发起链接后创建,客户端关闭后也会跟着关闭。对方的客户端程序每次发送一条信息后就关闭链接,下次发送时重新建立连接。 现在的问题是我服
socket api写的通信程序客户端老是报错10038,求救!求救!
我用的是C++BUILDER工具编写的,主要是sockaddr_in结构中的.sin_addr.S_un.S_addr有点区别,其他的我就不知道了, 请大侠指教啊。 我的客户端代码: int main
Socket 10038错误,请问一正是怎么回事?
代码如下: #include "stdafx.h" #include "test.h" #include #pragma comment(lib,"Ws2_32.lib"); #
j2me socket连接返回错误码 10065
rt 这问题该怎么解决。。 在手机上碰到的。。
多线程操作同一个socket还是每次在多线程创建socket好呢?
目前是<em>多线程</em>操作formMain的IdTCPClient来发送数据rnrn感觉有时后数据会乱rnrn打算在<em>多线程</em>中创建IdTCPClient,这样创建速度会很慢吗?
java socket 多线程同时调用
最近在学习SOCKET,碰到了个问题,想请教大虾们一下rn Socket st = new Socket(ip,port);rn DataInputStream in;rn DataOutputStream out;rn in = new DataInputStream(st.getInputStream());rn out = new DataOutputStream(st.getOutputStream());rn在程序中开两个线程,分别执行不同的任务,Thread1负责往服务器发送报告1,Thread2负责往服务器发送报告2,报告1和报告2是不不同类型的数据,当某一时刻Thread1和Thread2<em>同时</em>往服务器发送报告的时候,即两线程<em>同时</em>调用out的时候,程序是否会发送错误?也就是想请教大虾们一下,JAVA中的SOCKET相关的对象是否线程安全?
select时10038错误
主要代码如下:rn[code=C/C++]rn……rn//MySocket是成功监听中的套接字rnHANDLE hThread = CreateThread(NULL,0,MyAcceptThread,(LPVOID)&MySocket,0,&dw_ThreadAccept);rn……rnDWORD WINAPI MyAcceptThread(LPVOID <em>socket</em>)rnrn SOCKET m_<em>socket</em> = (SOCKET)<em>socket</em>;rn ……rn while(1)rn rn FD_ZERO( &except);rn FD_SET(m_<em>socket</em>,&except);rn int i = WSAGetLastError(); //i = 0rn if( select(0,NULL,NULL,&except,&timeout) == SOCKET_ERROR )rn i = WSAGetLastError(); //i = <em>10038</em>rn ……rn rn ……rn[/code]
select返回10038的奇怪问题!!!
先说一下情况:有2个线程,一个监听线程,一个数据线程。rnwhile(1)rnrn m_s = accept( s,NULL,NULL ); // m_s是个成员变量,bind,listen已经在前面都做好没问题rn 。。。rn CreateThread(。。。); //创建一个数据线程rnrnrn数据线程:rnwhile(1)rnrn if( (nRet = select( 0,&fdread,NULL,NULL,0)) == SOCKET_ERROR ) rn rn 输出SOCKET句柄的值rn rnrn// 关于fdread的操作FD_ZERO,FD_SET等确定肯定没问题rnrn我这个是测试短线重连的功能。第一次客户端连接过来没问题,都能正常工作,当我断开连接,客户端会马上再来连接,我看accept<em>返回</em>的值是没问题,是有效的SOCKET句柄,可是一到SELECT就<em>返回</em><em>10038</em>说是非套接字句柄,可是我看句柄的值没有被改变,也确定没有别的线程或者地方将m_s改变,还有什么可能啊?弄了2天了都没头绪。。。。
套接字编程,使用TCP协议编写服务器程序——绑定错误10038
-
socket 10038 错误!
用BCB的<em>socket</em>server和<em>socket</em>client控件编程,但出现<em>10038</em>错误(//在一个非法的Socket对象上进行操作),我知道产生的原因是:<em>socket</em>断开或关闭的时候,但socke
socket报错:10038
#include int main(int argc, char* argv) { int iResult; SOCKET MySocket=INVALID_SOCKET;
socket 服务器端程序recv() 出现10038错误
struct regular regularinfo; bool Server::initServer(ZTcpSocket* <em>socket</em>) { server.bind("172.11.2.50",
MFC Socket编程 select返回10038
<em>socket</em>编程小白一枚,尝试做一个局域网互联的五子棋小游戏,服务器部分写的没问题,用测试程序可以连上,但是客户端就死活不行,select后,WSAgetlasterror<em>返回</em><em>10038</em>,求大佬们帮我看看哪里出问题了[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/54.gif][/img]rn下面是错误部分代码(select不太会用)rn [code=c]USES_CONVERSION;rn char *IPC = T2A(IPaddress), *PortC = T2A(Port);rn int tPort = atoi(PortC);rn Main->addrC.sin_family = AF_INET;rn Main->addrC.sin_port = htons(tPort);rn Main->addrC.sin_addr.S_un.S_addr = inet_addr(IPC);rn ::connect(Main->Csock, (sockaddr*)&(Main->addrC), sizeof(Main->addrC));rnrn fd_set wfd;rn struct timeval timeout;rn FD_ZERO(&wfd);rn timeout.tv_sec = 10;rn timeout.tv_usec=0;rn FD_SET(Main->Csock, &wfd);rn int Res = 1;rn Res = select(1, NULL, &wfd, NULL, &timeout);rn if (Res == 0 || Res == SOCKET_ERROR)rn rn CString temp;rn int n = WSAGetLastError();rn temp.Format(L"连接失败!请重试!错误%d", n);rn MessageBox(temp);rn rn elsern rn MessageBox(L"连接成功!");rn CDialogEx::OnOK();rn [/code]
msnp15 获取好友列表时 返回301错误码
有哪位兄弟搞过MSNP15协议啊,为什么在获取好友列表时总是<em>返回</em>301呢?rnrnrn网上说是地址永久转移,然后我尝试用新的地方访问,也同样<em>返回</em>301,是怎么回事呢?rnrnrn有木有人解决过的,还请指点一下,在线等待,谢谢了rnrnrn附上<em>返回</em>301后的一些信息:rnrnrnrnrn16.03.2825.0001rn14r2;epklvod0Ov/9i93gXjFZaWJTEn9kbu0xXo/78uB+GTGyQtxBdIyE21+8uIE0lrnkH6tgOq5aqjJKXy56vU9WyHQT1bP8uDh61WAKzVx1bT5EpmIlRTyVsQ/k2JWF2OrcoiTdtQAyHG7ICp3wtNmKplHDuaycHvDyE7OsqYhqhkM=rntruernproxy-bay.contacts.msn.comrnABCH.e2515021-883d-4840-8d80-2144d6ab7145rnrnrnrnrnrn
返回提示语、返回错误码
<em>返回</em>提示语: if (payOrder == null) { logger.info(&quot;没有交易支付单!&quot;); return new BaseResponse(RespConstants.GLOBAL_INNER_ERROR, &quot;没有交易支付单!&quot;); } <em>返回</em><em>错误码</em>: if (!iouInfo.getLoanUserId().equals(appUserId)) {// ...
错误提示:10038 :Socket openratin on non-socket
有时正常、有时不知为什么出现错误提示、然后服务程序就没有响应了!rn我用的是:NMStrmServ1rn大哥拜托
这个程序 sendto 返回-1 错误编号 10038 是为什么啊 麻烦大家帮我看一看
-
(转载) socket10038错误{winSock的一个bug:当closesocket多次错误使用时会导致问题}...
这几天想在一个开源的代码上进行修改,以期研发出一个产品出来。 程序原来是单线程网络程序,需要修改为<em>多线程</em>,修改之后,总是出问题,辅助线程中的recv函数总是运行一阵子之后收到长度为-1的数据报,导致程序运行不正确甚至崩溃。 由于是<em>多线程</em>,只好打日志进行调试,发现一个奇怪的问题。在A线程与B线程中,均<em>使用</em>了<em>socket</em>这个函数来产生<em>socket</em>,竟然会产生两个相同<em>返回</em>值的s...
10038
sendto <em>返回</em>-1,错误<em>10038</em>; 解决办法:http://stackoverflow.com/questions/14289998/connect-function-fails-wsagetlasterror-<em>10038</em> if ((sa = <em>socket</em>(AF_INET, SOCK_STREAM, IPPROTO_TCP) == INVALID_SOCKET)) 与
python 的urllib的urlopen返回10038错误,该怎么解决?
代码很简单, 如下所示. 信息如下: 0. windows是64bit win7, 安装的是64位的官方python( 试过32位的python, 问题现象一样) 1. 昨天晚上相同的代码还能访问,
谁帮我看看这个socket的sendto函数哪里错了?返回的错误代码是10038
谁帮我看看这个<em>socket</em>的sendto函数哪里错了?<em>返回</em>的错误代码是<em>10038</em> // Server.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #incl
同时使用Socket和DatagramSocket
我想<em>同时</em><em>使用</em>Socket和DatagramSocket。rn首先new了一个ServerSocket,然后想再new一个DatagramSocket(<em>使用</em>不同的端口),结果提示错误:Address already in use,一个地址只能有一个Socket?不能一个地址的不同端口有不同的Socket?rn怎样才能实现<em>同时</em><em>使用</em>Socket和DatagramSocket呢?rnrn
linux socket收包错误码
1、ENOTCONN ---当前状态为TCP_LISTEN 2、flags为带外数据tcp_recv_urg    ENOTCONN ---当前状态为TCP_CLOSE    EINVAL   ---TCP_URG_READ    EFAULT   ---拷贝失败    EAGIN    ---TCP_URG_NOTYET      <em>返回</em>len  ---TCP_URG_VALID 3
vb.net 多线程 同时访问同一个数组的问题
vb.net 2012rn窗体和BackgroundWorker 共两个线程rnrn两个线程<em>同时</em>访问位于窗体代码中定义的一个数组,涉及到的操作为赋值,redim等rnrn这种做法可行吗?rnrn我这样做的时候发现经常会出现读取错位,比如BackgroundWorker正在对数组进程操作时,窗体进程读取数组(0)的值时,实际得到的却是数组(1)的值rnrnrn那么以下哪种说法正确?rn1 不应该两个进程<em>同时</em>操作<em>同一个</em>数组,这种做法肯定是错的.rnrn2 可以两个进程<em>同时</em>操作<em>同一个</em>数组,是我技术好导致错误.(如果是这样,能否大概指个方向)rnrnrn谢谢了
多线程不能同时打开同一个文件的问题!
我准备用<em>多线程</em>打开<em>同一个</em>文件,而且每个线程都用rntfilestream写入方式打开,并且要对文件进行写入操作rn可是我的第一个线程打开了该文件,比如MP3,rn第二个线程就不能打开该文件了,高人们有什么好的解决办法没有?
多线程同时访问同一个成员变量的问题
![图片说明](https://img-ask.csdn.net/upload/201907/04/1562247822_77533.png)![图片说明](https://img-ask.csdn.net/upload/201907/04/1562247828_313467.png)![图片说明](https://img-ask.csdn.net/upload/201907/04/1562247882_304595.png)rnrn请问该如何解决?正在学习<em>多线程</em>,望指教,谢谢
socket一个很奇怪的10038错误
在VC6.0下,程序有一个很奇怪的问题 我没用<em>使用</em>CSocket等类,直接<em>使用</em>的是<em>socket</em>底层的函数,<em>socket</em>(),bind等 程序的思路是: 1.一个监听进程lsnrThrd,一旦有连接到来
Socket错误码对应表
#define    EPERM         1               操作不允许 #define    ENOENT         2             文件或路径不存在 #define    ESRCH         3                       进程不存在 #define    EINTR         4           ...
关于socket的各种错误码
1、INVALID_SOCKET : 表示该 <em>socket</em> fd 无效。如 accept(2) 或 <em>socket</em>(2) 等在创建<em>socket</em>fd时: int m_<em>socket</em> = <em>socket</em>(AF_INET, SOCK_STREAM, 0); if (m_<em>socket</em> == INVALID_SOCKET){ printf(&quot;<em>socket</em> failed, err_code=%d\n&quot;, _G...
关于多线程同一个SOCKET操作的问题
<em>同一个</em>SOCKET,一个线程读,多个线程写,会不会有问题?要不要互斥?感觉好象有问题,但不确定,求解...THX。
iocp中多线程接收同一个socket问题?
RT。小弟<em>使用</em>iocp作为服务端通信底层,有个问题很疑惑,比如创建了2个线程调用GetQueuedCompletionStatus等待通知,client连接上服务器后不停地发送数据,那么这2个线程都会接收到数据,线程在接收到数据后会存入一个缓冲区中以便解包,此时会不会发送数据乱序呢?比如client发送3KB数据给服务器,线程1首先接收到前1KB数据,准备写入缓冲区,与此<em>同时</em>线程2也接收到剩余2KB数据,也准备写入缓冲区,但是由于我们无法控制线程调度,会不会出现线程2先写入了缓冲区,这样就乱序了。
支付宝支付返回错误码4000
在测试demo的支付宝支付时 直接<em>返回</em>错误 看日志发现<em>返回</em>的<em>错误码</em>为4000 找了资料之后发现 是有个activity忘记配置了 andro
调用av_read_frame返回错误码
首先上代码: #include #define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24)) #define FFERRTAG(a, b, c, d) (-(int)MKTAG(a, b, c, d)) #define AVERROR_BSF_NOT_FOUND FFERRTAG
关于多线程同时访问同一个WebService的同一个函数的问题
多个线程<em>同时</em>调用<em>同一个</em>WebService的<em>同一个</em>函数时会出错,但是多个线程<em>同时</em>调用的机率还是很少,不知道有没有什么方法可以既能<em>同时</em>访问又不出错。rnrn 不想在线程里同步的方法来实现。
CreateCompatibleBitmap返回错误码的原因
分析 CreateCompatibleBitmap<em>返回</em><em>错误码</em>8的原因及解决方案
usb_bulk_write返回错误码含义
这边在网上找了一天都没有找到有用的干货,为了帮后来者提供一个关键字,这里贴一下关键代码 int usb_win_error_to_errno(void) { switch (GetLastError()) { case ERROR_SUCCESS: return 0; case ERROR_INVALID_PARAMETER: return EINVAL;//22 case ER...
Java多线程 Socket使用
Socket是客户端和服务器端交流的端点。通过它可以实现客户端和服务器端的通信。顺着这篇文章操作下来,你应该会对Socket编程有比较系统的了解。注意,跟着敲代码,有什么不懂而我又没提到的地方,随时百度,不要积累误差。 客户端编程 Socket是有连接的,所以双方建立通信,需要知道彼此的网络位置(IP和端口)。 创建Socket对象: Socket <em>socket</em> = new S...
关于多线程同时使用同一个connection创建的多个对象的问题
举个例子, 线程1创建了connection,然后通过connection创建了statement1和statement2 ,以及statement3 。 然后线程1<em>使用</em>statement1 , 线程2<em>使用</em>statement2 , 线程3<em>使用</em>statement3 ,3个线程共同运行 ,请问可以这样<em>使用</em>吗?rnrn我正在编写一个jdbc驱动, 想知道由<em>同一个</em>connection创建的多个JDBC对象能够由多个线程<em>同时</em><em>使用</em>吗(每个线程<em>使用</em>一个)?rnrnJDBC规范是否要求必须支持这种<em>使用</em>?还是只要求同一connection创建的所有对象在某一时刻必须只能由一个线程访问?rnrn目前的驱动是否支持<em>多线程</em><em>同时</em><em>使用</em>connection创建的对象? rnrn如果规范不要求支持<em>多线程</em>共同<em>使用</em>connection , 并且驱动也不支持,那我也就选择不支持,毕竟这样做会极大的简单编码和提高效率
百度网盘转存返回错误码
0:成功; -1:由于您分享了违反相关法律法规的文件,分享功能已被禁用,之前分享出去的文件不受影响。; -2:用户不存在;请刷新页面后重试; ...
记录下返回错误码
* ERROR_UNKNOWN  通用错误          * ERROR_HOST_LOOKUP 服务器或代理主机查找失败(链接有问题)          * ERROR_UNSUPPORTED_AUTH_SCHEME 不支持身份验证          * ERROR_AUTHENTICATION 用户身份验证失败          * ERROR_PROXY_AUTHENTICATI
DB2错误码返回
执行DB2的语句时,通过<em>返回</em>的code值来找错
java-多线程同时操作同一个对象之解决方法:读写锁ReadWriteLock的使用
说明一下,这边文章写得比较简单,只涉及到ReadWriteLock的<em>使用</em>,具体源码实现原理并不涉及。 1、<em>使用</em>场景:            首先我这边是实际开发中<em>使用</em>到了,开发的环境情况为:有一个数据中心(暂且当做一个Map集合),有两个子线程A、B,其中A线程每5秒钟从其他地方获取到新来的数据然后和数据中心里面的数据进行一个融合,然后B线程进行隔5分钟从数据中心取出Map集合并解析其中的数据...
C#获取返回错误码
[DllImport(&quot;TestWin32Dll.dll&quot;, EntryPoint = &quot;TestFunc&quot;,SetLastError = true)] private static extern void TestFunc(); private void TestPInvoke() { TestFunc(); int reCode = Marshal.GetLastW...
Android_SDK返回错误码接口
连接<em>错误码</em>的<em>返回</em>主要有  debugSessionInfo(Camera camera, int resultCode) debugChannelInfo(Camera camera, int avChannel, int resultCode) 这两个接口<em>返回</em>resultCode; debugSessionInfo是IOTCAPIs连接<em>返回</em>的<em>错误码</em>; debugChannelInfo是
GetQueuedCompletionStatus 返回错误码997
初学IOCP,遇到一个问题,GetQueuedCompletionStatus <em>返回</em>true,但调GetlastError<em>返回</em>997(重叠 I/O 操作在进行中)。rn请大家指导一下,代码如下:rnrn[code=c]unsigned int WINAPI workerFunc(void* param)rnrn printf("工作线程已运行:%d\n", GetCurrentThreadId());rnrn static DWORD dwFileSize = (DWORD)param;rn static DWORD dwStartRead = 0;rnrn DWORD dwBytesTransferred;rn OverLappedPlus ovlpPls;rn OVERLAPPED* lpOverlapped;rnrn while (1)rn rn bool bRet = GetQueuedCompletionStatus(hIocp, &dwBytesTransferred, (PULONG_PTR)&ovlpPls, &lpOverlapped, INFINITE);rn if (!bRet)rn rn printf("Error! -- %d\n",GetCurrentThreadId());rn continue;rn rn DWORD dwErr = GetLastError();rnrn if (lpOverlapped == NULL)rn rn printf("Received quit order. -- %d\n",GetCurrentThreadId());rn break;rn rn if (0 != dwErr)rn rn // printf("ThreadID:%d Error occur: %d:",GetCurrentThreadId(),dwErr);rn if (dwErr == 997)rn rn continue;rn rn elsern rn printf("Other error occur.--%d",GetCurrentThreadId());rn rn rnrn OverLappedPlus* pPlus = (OverLappedPlus*)lpOverlapped;rn if (pPlus->opType == OP_READ)rn rn printf("ThreadID:%d. %d%d\n",GetCurrentThreadId(), lpOverlapped->Offset, lpOverlapped->Offset+dwBytesTransferred);rn EnterCriticalSection(&csRead);rn if (dwStartRead >= dwFileSize)rn rn printf("已读完 _%d",GetCurrentThreadId());rn dwFileSize = 0;rn LeaveCriticalSection(&csRead);rn break;rn rn elsern rn rn DWORD iToRead = dwFileSize - dwStartRead;rn if (iToRead > BUF_LEN)rn rn iToRead = BUF_LEN;rn rnrn memset(lpOverlapped, 0, sizeof(OVERLAPPED));rn lpOverlapped->Offset = dwStartRead;rnrn dwStartRead += iToRead;rnrn ReadFile(pPlus->hFile, pPlus->buf, iToRead, NULL, lpOverlapped); rn rn LeaveCriticalSection(&csRead);rn rnrn rnrn printf("工作线程即将退出:%d\n", GetCurrentThreadId());rn return 0;rn[/code]rnrn该函数实现用IOCP读本地文件的功能。rn我在主函数里还执行了这样一句代码: ReadFile(hRead, opsR.buf, 0, NULL, &opsR.olpd); 是想先产生一个异步操作。rn现在工作线程第一次能够正确执行,GetQueuedCompletionStatus <em>返回</em>true,且GetlastError<em>返回</em>0.然后会执行下面的操作,进行另一次异步读。rn但接下来:GetQueuedCompletionStatus<em>返回</em>true,但GetLastError<em>返回</em>997了。rnrn初学IOCP,不知道怎么处理GetQueuedCompletionStatus的<em>返回</em>结果。rn我想不明白的地方:rn1、GetQueuedCompletionStatus<em>返回</em>true,而且Overlapped* 参数不为NULL,那就表示有IO操作完成了。但为什么调用GetLastError会<em>返回</em>997(重叠 I/O 操作在进行中)呢 ?rnrn2、如果重叠IO操作未完成且外部没有调用PostQueuedCompletionStatus,那么GetQueuedCompletionStatus为什么<em>返回</em>呢 ?rnrn3、对GetQueuedCompletionStatus只有在<em>返回</em>FALSE的情况下,才需要调用GetLastError么 ?rnrn
Laravel手动返回错误码
laravel手动<em>返回</em>错误状态码
请教:多线程使用同一个socket进行数据收发会出现什么问题?
如题
花样作死学习笔记:多线程多线程同时执行同一个程序
人就是控制不住自己作死的心理。例如我 学习到了<em>多线程</em>知道了,<em>多线程</em>是提高运行效率最好的办法,当然还有算法。但是我还不会算法,所以用<em>多线程</em>做做死 正好老师出了一道题,在1-4这个4个数字中,生成十个三位数的数字,要求每一个数字都要不相同。<em>同时</em>这十个数字要求不相同。正常逻辑下,运行时间为4,代码应该如下 long start = System.currentTimeMillis(); ...
3种下载文件程序的思考,为何使用NIO进行异步网络通讯
1.  前言 现在很多做网络通讯中间代理层的通讯都是<em>使用</em>Java1.4以后推出的NIO进行编写,现在还有很多开源的框架也是封装了NIO的书写细节来帮助大家简写异步非阻塞通讯服务。像MySql的代理中间件amoeba-mysql-proxy就是采用NIO的方式处理client端过来的request,之后与Mysql-Server层的通讯也是采用NIO进行命令消息发送的。再看咱们JavaEye首页介...
[求助]关于多线程同时读写SOCKET
有一个server端,有一个client端,一边是bind,listen,accept方式工作的server,另一边是connect的client,client端是<em>多线程</em>的,如果针对client连接时的<em>socket</em><em>同时</em>的进行读写,会出问题吗?rnrn即:client端开了几个线程,一个在做send的<em>同时</em>,其他几个有可能也在做send或者也在做recv,这样的操作会产生冲突吗?需要人为的加上互斥机制吗?rnserver端工作方式也一样。rnrn针对这样的需求,怎么样的<em>socket</em>模型更适合一些?
使用Nginx+lua返回错误码并且返回自定义内容。
<em>使用</em>Nginx+lua<em>返回</em><em>错误码</em>并且<em>返回</em>自定义内容。 <em>使用</em>ngx.exit(后端服务<em>返回</em>的httpcode),如果后台<em>返回</em>的是500 等<em>错误码</em>的时候如下用法会有错误: ngx.say(res.content) ngx.exit(res.httpCode); 上面的代码在后端服务器<em>返回</em>非200的时候,会<em>返回</em>客户端 200,内容则是错误信息;日志显示大体是:在<em>返回</em>200之后,
如何同时使用两个SOCKET
各位大侠帮忙看看下面的代码,实质就是两个SOCKET<em>同时</em>通信的问题,框架是一个基于对话框的程序。rnvoid MyInit()rnrnserv.sin_addr.s_addr=htonl(INADDR_ANY);rnserv.sin_family=AF_INET;rnserv.sin_port=5000;//htons(5000);rnaddlen=sizeof(serv);rn//创建<em>socket</em>rnsock=<em>socket</em>(AF_INET,SOCK_STREAM,0);rn//绑定rnif (bind(sock,(sockaddr*)&serv,addlen))rnrnMessageBox("绑定错误");rnrnelsernrn//开始侦听 rnlisten(sock,5);rn//调用线程rnAfxBeginThread(&thread,0);rnrnrnUINT thread(LPVOID p)rnrnchar buff[100];rnCString temp,temp1("Start");rn rnDisplay *dlg=(Display*)AfxGetApp()->GetMainWnd();rnrndlg->sersock=accept(dlg->sock,(sockaddr*)&(dlg->serv),&(dlg->addlen));rnif (dlg->sersock==INVALID_SOCKET)rnrnAfxMessageBox("INVALID_SOCKET");rnrnelsernrnint result=1;rnwhile(result!=SOCKET_ERROR)rnrnresult=recv(dlg->sersock,buff,100,0);rnif (result!=SOCKET_ERROR)rnrntemp=buff;rnif(temp == temp1)rn fun1();//全局函数rnrnrnrnclose<em>socket</em>(dlg->sersock);rn rnAfxEndThread(0);rnreturn 0;rnrnvoid fun1()rnrnint i=0;rnsockaddr_in cli;rnSOCKET clisock;rncli.sin_addr.s_addr=inet_addr("198.118.60.45");rncli.sin_family=AF_INET;rncli.sin_port=1051;//htons(5000);rnclisock=<em>socket</em>(AF_INET,SOCK_STREAM,0); rnwhile(connect(clisock,(sockaddr*)&(cli),sizeof(cli)))rnrnif(i==5)rnrnAfxMessageBox("不能连接到服务器");rnreturn;rnrn++i;rnrnrn想作的这个程序本身既是服务器又是客户端,测试的时候是通过另外的一个程序先连接这个程序发出Start的指令,然后本程序去连接另外的一个服务器A(已经处于启动的状态)。为什么连接不上A啊?如果不等待指令而是直接去连A则成功,原因是什么?
java api 错误码设计,枚举错误码设计以及接口响应返回错误码使用,源码及举例
java api <em>错误码</em>设计,枚举<em>错误码</em>设计以及请求响应<em>返回</em><em>错误码</em>的<em>使用</em>,源码及举例 <em>错误码</em>设计 <em>错误码</em>采用枚举实现,<em>错误码</em>从1001开始,主要是不想和http请求状态码重复比如200,404等。<em>错误码</em>数值怎么给,看自己项目需求,每个功能模块给留足够的数值,比如我给每个模块的范围是1-99 ,通用<em>错误码</em>范围 1001-1099 , 文件模块<em>错误码</em>范围 1101 - 1199 , 其他模块依此类推....
使用多线程同时查询案例
该项目<em>使用</em><em>多线程</em>实现分页查询,分为两步,第一步查询list,第二步查询数量进行分页计算。 条数<em>返回</em>值类 @Data public class ThreadCountPage { private Integer sumCount; } <em>多线程</em>实现Callable接口工具类 public class ThreadQuery&lt;T&gt; implements Calla...
多线程SOCKET出错 ,返回WSAECONNRESET(10054).
我想测试服务器的listen和recv<em>多线程</em>,就在客户端用按钮事件用For连续连接服务器10次,并发送数据,结果出错:如果两个发送进程之间不Sleep(10)时,就出错,WSAGetLastError()<em>返回</em>10054; 必须加延时吗? 如果多个客户端<em>同时</em>连接服务怎么办?rnrn对应的解释:rnrn.net:rn// An operation on a <em>socket</em> could not be performed because the system lacked sufficient buffer space or because a queue was full.rnrnmsdn2000:rnThe virtual circuit was reset by the remote side executing a hard or abortive close. For UPD <em>socket</em>s, the remote host was unable to deliver a previously sent UDP datagram and responded with a "Port Unreachable" ICMP packet. The application should close the <em>socket</em> as it is no longer usable.rnrnrnrn
急!Socket多线程参数返回同步
我的问题是这样的:rnrn 我现在是对串口进行通讯,其中涉及到了<em>多线程</em>优先级问题和参数传递问题,rn 我想实现的效果:[color=#FF0000]用户发送什么信息,服务器就<em>返回</em>给客户端什么信息[/color]rn 当多个客户端通过Socket发送参数信息给服务器端,服务器端接受参数,[color=#FF0000]如果这多个客户<em>同时</em>发送信息,rn 服务器是如何区分这些参数是来自哪个用户的?[/color]rn rn 备注:Socket客户端和服务器的单向通讯已经实现。rnrn 请各位帮帮忙,先谢过了。。。
Linux网络编程socket错误码分析
本文档对Linux 网络编程中<em>socket</em>系列函数报的<em>错误码</em>及其常见处理总结
windows socket错误码及出错原因
windows <em>socket</em><em>错误码</em>及出错原因,可以参考一下。也可MSDN。
接收东西时候 返回错误代码10038?!!
我在窗体 onshow事件中调用了一个线程~rn在这个线程里 创建了一个udp <em>socket</em>~头次接收正确后~rn第二次接收时候失败了~rn错误提示 <em>10038</em>~rn但我并没有关闭<em>socket</em>~我查看了<em>socket</em>在第二次接收时的值变为0了~第一次是有值的rn<em>错误码</em><em>10038</em>的解释是 在一个无效套接字进行操作~rnrn我是头一次用<em>多线程</em>~rn是不是在线程里不能创建<em>socket</em>~rn线程里有个死循环用来接收东西的~
关于扩展DLL中Socket(10038)的问题。
我在扩展dll中<em>使用</em>winsock但是<em>返回</em><em>10038</em>错误,说:描述符不是套接字 但我定义的SOCKET s 确实没错。并在win32 exe中测试通过。以下是函数部分:并在头文件中也包含winsock.h 和librnrnFtpStart(CString hostname, CString FilePath, CString FileName, int Port, int ThreadNumber, CString SaveTo)rnrn char buf[bufsize];rn WORD wVersionRequested;rn WSADATA wsaData;rn int sockerror;rn wVersionRequested=MAKEWORD(1,1);rn sockerror=WSAStartup(wVersionRequested,&wsaData);rn if (sockerror !=0) rn AfxMessageBox("WinSock初始化失败");rn WSACleanup();rn exit(1);rn rn if (LOBYTE(wsaData.wVersion) !=1 || HIBYTE(wsaData.wVersion) !=1)rn rn AfxMessageBox("您的系统不支持winsock1。1版");rn WSACleanup();rn exit(1);rn rnrn SOCKET s;rn if (s=<em>socket</em>(AF_INET,SOCK_STREAM,IPPROTO_TCP) ==SOCKET_ERROR) rn AfxMessageBox("Socket创建失败");rn WSACleanup();rn exit(1);rn rn int bNodelay = 1; rn /*if (setsockopt(s,IPPROTO_TCP,TCP_NODELAY,(char *) &bNodelay,sizeof(bNodelay)) ==SOCKET_ERROR) rn AfxMessageBox("Socket设定失败");rn WSACleanup();rn exit(1);rn */rn sockaddr_in addr;rn sockaddr_in ServAddr;rn addr.sin_family=AF_INET;rn addr.sin_port=0;rn addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);rn /*if (bind(s,(LPSOCKADDR)&addr,sizeof(addr)) ==SOCKET_ERROR) rn printf("bind错误");rn exit(1);rn */rn ServAddr.sin_port=htons(Port);rn ServAddr.sin_family=AF_INET;rn /*sockaddr_in sa;rn CString ServIP;rn struct hostent *phe;rn if (phe=gethostbyname(hostname)) rn for (int nAdapter=0; phe->h_addr_list[nAdapter]; nAdapter++) rn memcpy (&sa.sin_addr.S_un.S_addr,phe->h_addr_list[nAdapter],phe->h_length);rn rn rn else rn AfxMessageBox("无法解析主机名"+hostname);rn WSACleanup();rn exit(1);rn rn ServIP=inet_ntoa(sa.sin_addr);rn */rn ServAddr.sin_addr.S_un.S_addr=inet_addr(ServIP);rnrn if (connect(s,(LPSOCKADDR)&ServAddr,sizeof(ServAddr))==SOCKET_ERROR) rn AfxMessageBox("无法连接到主机");rn WSACleanup();rn exit(1);rn rn CString Rmsg;rn Rmsg=OnRecv(s,buf);rn return 0;rnrnrn
使用多线程写到同一个文件时出错,如何更改
<em>使用</em><em>多线程</em>写到<em>同一个</em>文件时出错,如何更改rn namespace Programming_CSharprn rn using System;rn using System.IO;rn using System.Threading;rn class Testerrn rn static void Main( )rn rn // make an instance of this classrn Tester t = new Tester( );rn // run outside static Mainrn t.DoTest( );rn rn public void DoTest( )rn rn Thread t1 =rn new Thread(rn new ThreadStart(Incrementer) );rn rn Thread t2 =rn new Thread(rn new ThreadStart(Decrementer) );rn // start the threadsrn t1.Start();rn t2.Start();rn rn // demo function, counts up to 1Krn public void Incrementer( )rn rn for (int i =0;i=0;i--)rn rn //Console.WriteLine( "Decrementer: 0", i);rn rn StreamWriter sw=new StreamWriter(@"c:\a.txt",true);rn rn sw.WriteLine("incrementer:0",i);rn sw.Close();rn rn rn rn
DeviceIoControl 返回错误码1,为什么?
if(!DeviceIoControl(rn hRootOfVolume,rn IOCTL_CHANGER_GET_PRODUCT_DATA,rn NULL,rn 0,rn &product_data,rn sizeof(product_data),rn &returnsize,rn NULL))rnrn执行过后,用getlasterror()得到 1,(含义是功能错误)rnrn为什么? 另外哪位大虾知道changer是什么意思?rnrn这个问题搞了好长时间了。 我就是想得到一个volume对应的硬件是个什么东西。主要是针对移动存储,例如当用户插入一个数码相机的时候,我能知道新出来的盘符对应的是数码相机。rnrn大恩不言谢,只有倾囊相赠了!!
iOS 网络请求返回错误码汇总
enum { NSURLErrorUnknown = -1, NSURLErrorCancelled = kCFURLErrorCancelled, NSURLErrorBadURL = kCFURLErrorBadURL, NSURLErrorTimedOut = kCFURLErrorTimedOut, NSURLErrorUn
微信分享返回 错误码 -6 的情况!
<em>错误码</em> -6在官方的文档里面并没有的 有的说是 微信缓存,可我卸载了N多次都是不行的 当然如果key百分百正确的情况下不排除以上方法的有效性 这个时候我开始考虑key是否错了,因为不是自己申请的,最终果然如此啦主要会可能有两个原因, 第一是 申请时 MD5的值不对 下面有查看方法 第二是 本地的微信Key值可能会不对 ,这是我遇到的两个主要的原因中间还有一次,是因为 MD5 的
restful 常见的返回错误码总结
HTTP 400 - 请求错误:bad_request HTTP 406 错误 – 无法接受 (Not acceptable) 422 Unprocessable Entity - 请求格式正确 附:对照表 Response Class HTTP Status Code Symbol 消息 100 :continue 101 :switching...
postgresql 中如何返回错误码
客户端如(php)中执行postgresql命令,出错的话,如何<em>返回</em><em>错误码</em>。<em>使用</em>pg_last_error好像只<em>返回</em>错误信息。请多指教。
关于send返回10038错误的问题
以下是程序的部分代码,连接正常为什么send的时候会说找不到m_hSock呢?rn m_hSock = <em>socket</em>(AF_INET,SOCK_STREAM,6);rn ASSERT(m_hSock != NULL);rn rn m_addr.sin_family=AF_INET;rn m_addr.sin_addr.S_un.S_addr=inet_addr(IP);rn m_addr.sin_port=htons(port);rn int ret=0;rn int error=0; rn ret=connect(m_hSock,(LPSOCKADDR)&m_addr,sizeof(m_addr));rn if(ret==SOCKET_ERROR)rn rn TRACE("Connect Error:%d\n",(error = WSAGetLastError() ));rn return FALSE;rn rnrn ret=WSAAsyncSelect(m_hSock,m_hWnd,WM_P2PCLIEVENT,rn FD_READ | FD_CLOSE |FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT);rn if(ret==SOCKET_ERROR)rn rn TRACE("WSAAsyncSelect Error:%d\n",( error = WSAGetLastError() ));rn return FALSE;rn rn WSADATA wsaData;rn WORD version=MAKEWORD(1,1);rn int ret=WSAStartup(version,&wsaData);rn TRACE("WSAStartup return value ret=%d\n",ret);rn if(ret!=0)rn TRACE("WSAStartup Error!\n");rnrn if(m_hSock==NULL)rn rn TRACE("m_hSock==NULL");rn return FALSE;rn rnrn ret = send(m_hSock,buf,10,0);//ret<em>返回</em><em>10038</em>
请教我的ACCEPTEX为什么总是返回 10038
#include rnrn#include rn#include rnrn#include "Accept.h"rnrn#define OP_ACCEPT 2rnrn#pragma comment(lib, "ws2_32.lib")rn#pragma comment(lib, "Mswsock.lib")rnrnrnint main(int argc, char* argv[])rnrn WSADATA data = 0 ;rn WSAStartup(0x0202,&data);rnrn //建立SOCKETrn int m_plisten = <em>socket</em>(AF_INET,SOCK_STREAM,IPPROTO_TCP);rnrnrn sockaddr_in addr;rn addr.sin_port = htons(8080);rn addr.sin_family = AF_INET;rn addr.sin_addr.s_addr = inet_addr("192.168.0.169");rn rn rn //绑定 rn if(bind(m_plisten, (struct sockaddr *)&addr, sizeof(addr)) != 0)rn rn perror("°ó¶¨IPÓë¶Ë¿Ú ʧ°Ü !");rn return -1;rn rn rn //监听rn if(listen(m_plisten, 10) != 0)rn rn perror("½¨Á¢¼àÌý ʧ°Ü !");rn return -2;rn rn rn int AcceptSocket = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_IP, NULL, 0, WSA_FLAG_OVERLAPPED); rn if(AcceptSocket == INVALID_SOCKET) rn rn //--´´½¨SOCKETʧ°Ü rn return -1; rn rn int SocketRet = -1; rn DWORD dwReturnBytes=0; rn rn char buff[1024];rn OVERLAPPED app;rnrn app.hEvent = (HANDLE)OP_ACCEPT;rnrn SocketRet = AcceptEx(m_plisten, AcceptSocket, buff, 0,sizeof(SOCKADDR_IN)+16,sizeof(SOCKADDR_IN)+16,&dwReturnBytes, &app); rn rn if(SocketRet == FALSE) rn rn SocketRet = WSAGetLastError(); rn if(SocketRet !=ERROR_IO_PENDING) rn rn printf("error %d\n", SocketRet);rn rn rn close<em>socket</em>(m_plisten);rn WSACleanup();rnrn return 0;rnrnrn今日预建立完成端口程序,上面为小的测试ACCEPTEX的程序,rn执行结果是:屏幕上总是显示 error <em>10038</em> rnrn不知道为什么出错,请各位大虾指点!
建库时出现错误码
创建用户设备时出现错误:rn 原因:DISK INIT encountered an error while attempting to open/create the physical file.rnplease consult the SQL Server error log(in the SQL Server boot directory) for more details.
使用InternetOpenUrl时,错误码12006,是什么原因???
#define HTTPSERVER "http://www.google.com/default.htm"rnrnhInet = InternetOpen("Test", INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);rn// go to the desired URL:rnhFile = InternetOpenUrl(hInet,HTTPSERVER,NULL,0,0,0);rn
多线程和Socket混合使用的问题
一个应用程序中<em>同时</em>实现Client和Server的功能,这样我就将Server采用<em>多线程</em>的方式实现,避免Server的不间断的侦听对应用程序有影响;rn但是在我退出应用程式时程序出现错误;我觉得和此时还有一个Socket正出于Listen状态有关;rn敢问这种问题应该如何处理?
关于多线程使用SOCKET的问题
请问在<em>多线程</em>的<em>使用</em>一个SOCKET发送数据,(用UDP)是不是有问题呀?
WKWebView 加载返回其他错误码
WKWebView加载<em>返回</em>其他<em>错误码</em>还是会回到加载完成的回调而不是错误回调 - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation; 需要在这个地方处理下 //服务器<em>返回</em>200以外的状态码时,都调用请求失败的方法。 - (void)webView:(WKWebView *)w...
acedssget返回错误码-5001原因
原因可能是没有指定过滤机对象 也可能是对象dwgin out函数有问题!
LoadLibray失败,返回错误码193
最近开发中遇到loadlibrary失败的问题,困扰了很久,最近终于解决了,做个笔记<em>同时</em>也希望遇到此类问题的人多一种尝试的途径。 正题:在c++的开发中,需要加载java虚拟机(jvm.dll),我用的是loadlibrary,一直也是相安无事。直到遇到在一台机器程序崩溃,问题才暴露出来;我的应用程序是64位的,jvm.dll也是64位的(depends查看),所以不是64位程序加载32位dll
sqlite3_prepare_v2返回26错误码的解决
问题描述: C++写了一个SQLite小工具32位的,在64位win7下执行出错 处理过程: 1 来Debug,我有源码我怕谁 经过跟踪定位到sqlite3_prepare_v2()函数,<em>返回</em><em>错误码</em>为26. 通过查找26的定义为:#define SQLITE_NOTADB      26   /* File opened that is not a databas
createFIle(); 执行时,返回错误码123
问题描述:   解决问题:      通过设置工程属性 --》 配置属性 --》字符集 --》 <em>使用</em> Unicode 字符集 。      然后通过 将 str.Format(&quot;打开设备成功;vId:%x,pId:%x&quot;,USB_VID,USB_PID);        变为 str.Format(L&quot;打开设备成功;vId:%x,pId:%x&quot;,USB_VID,USB_PID);      这样程...
::AfxInitRichEdit()返回失败,错误码:87
我用vs2012编写的客户端,发布后在虚拟机上测试,报::AfxInitRichEdit()<em>返回</em>失败,<em>错误码</em>:87。在一般的机器上是没问题的。我把riched32.dll放在安装目录下,也不行。rn 请问那位高人指点一下!谢谢!
使用新浪第三方登录时,出现错误码:21322
在项目中出现了这么个情况,我在<em>使用</em>sharedsdk第三方登录的时候给新浪微博授权的时候出现了<em>错误码</em>:21322,,的提示,排查了一下是授权回调页的问题 原因: 在新浪后台:应用信息-高级信息-OAuth2.0授权设置-授权回调页 中的url应该与你的项目中的 RedirectUrl一致才行。           Id="1"         SortId="1"  
vb.net+dotnetbar7.4使用下子按钮时出现错误码
vb.net+dotnetbar7.4<em>使用</em>下子按钮时出现<em>错误码</em>rnrnrnObject reference not set to an instance of an object.
同一个页面同时只允许一个人打开使用???
现在正在做一个在文档系统,用户上传的文档,可以在线编辑,编辑是实现了,但是现在是多个用户可以<em>同时</em>打开编辑,谁先保存,谁先编辑的内容就先记录并保存下来, 这样会出现错误 rn现在我想 在用户打开编辑文档页面时做出相关提示,如果有人进入编辑页面时,就提示 此页面已经正在编辑不允许再次进入 请等待,如果此时没有人进入 可以正常进入文档编辑页面进行常规编辑rnrn谢谢
socket 多线程
<em>socket</em> <em>多线程</em> 带定时器的 有服务端 客户端
多线程socket!!!
fd_set fdswrite;rnFD_ZERO(&fdswrite);rnfor (int i=0;i<5;i++)rn{rn   sock[i]=<em>socket</em>(PF_INET,SOCK_STREAM,0);rn   ioctl<em>socket</em>(sock[i], FIONBIO, (unsigned long*)&ul);//设成非阻塞模式rnrn   connect(sock[i],(struct sockaddr *)&sin,sizeof(SOCKADDR_IN));rn   FD_SET(sock[i], &fdswrite);rn}rn如果<em>同时</em>建立5个<em>socket</em>往IP连结,且设成非阻塞模式,怎么判断这五个<em>socket</em>是否已连上了呢??rnselect(maxfd+1, 0, &fdswrite, 0, &timeout);这个函数好像只要一个<em>socket</em>有连结就退出了,如再次调用,也直接<em>返回</em>了,怎么知道5个<em>socket</em>是否连上??由于考虑效率,所以用非阻塞模式。
多线程socket
如果多个线程<em>同时</em>向一个<em>socket</em>写,会不会出问题?读呢?rn我的<em>socket</em>是阻塞方式的
socket多线程
<em>socket</em><em>多线程</em>
Gauss消元法求积分下载
用Gauss消元法求解积分 这是自己写的,请珍惜哦 相关下载链接:[url=//download.csdn.net/download/woshigelei/2311881?utm_source=bbsseo]//download.csdn.net/download/woshigelei/2311881?utm_source=bbsseo[/url]
数据立方体紧凑综述好东西下载
数据立方体紧凑综述,很好的东西,刚快来下载 相关下载链接:[url=//download.csdn.net/download/sino00748064/3280048?utm_source=bbsseo]//download.csdn.net/download/sino00748064/3280048?utm_source=bbsseo[/url]
SqliteDev386.exe下载
SqliteDev Sqlite工具 2012 9月 相关下载链接:[url=//download.csdn.net/download/malaroy/4571552?utm_source=bbsseo]//download.csdn.net/download/malaroy/4571552?utm_source=bbsseo[/url]
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法
我们是很有底线的