2 y459818464 y459818464 于 2016.04.18 10:05 提问

VS2008创建socket套接字阻塞,没有返回值
    VS2008下编写wince的MFC程序,在Debug模式下运行调试正常,在release模式下运行到socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)

阻塞,没有返回值,这是什么情况??

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Linux socket编程之阻塞套接字和非阻塞套接字
每一个TCP套接口有一个发送缓冲区,可以用SO_SNDBUF套接口选项来改变这个缓冲区的大小。当应用进程调用 write时,内核从应用进程的缓冲区中拷贝所有数据到套接口的发送缓冲区。如果套接口的发送缓冲区容不下应用程序的所有数据(或是应用进程的缓冲区大于套接口发送缓冲区,或是套接口发送缓冲区还有其他数据),应用进程将被挂起(睡眠)。这里假设套接口是阻塞的,这是通常的缺省设置。内核将不从write系
window和linux下,设置socket为阻塞模式
void SetSocketUnBlock(SOCKET hSocket) { #ifdef WIN32     u_long mode = 1;     if (SOCKET_ERROR == ioctlsocket(hSocket, (long)FIONBIO, &mode)) // É趨SOCKETģʽΪÒì²½     {         COM_ASSERT(0);
套接字模式—阻塞模式开发
1、阻塞模式概念     当使用socket()函数和WSASocket()函数创建的套接字时,默认都是阻塞模式的。阻塞模式是指套接字在执行操作时,调用函数在没有完成操作之前不会立即返回的工作模式。这意味着当调用Windows Sockets API不能立即完成时,线程处于等待窗台,直到操作完成。      并不是所有的Windows Sockets API以阻塞套接字为参数调用都会发
套接字的阻塞和非阻塞send/recv
先理一下阻塞和非阻塞的概念: 阻塞就是让当前调用线程一直处于停止等待当中,挂起的状态,线程函数会被卡住。 非阻塞则是不管运行结果如何,都会继续往下执行(往往都要处理很多返回结果),线程函数里一般都是一个循环,不停的轮询。 再理一下发送接收函数: send/sendto函数,只是把应用层的数据拷贝到内核发送缓冲区,并不保证数据一定会被发送到对端,真正执行发送及什么时候发送是由系统(协
socket阻塞与非阻塞模式
本文转载 http://blog.sina.com.cn/s/blog_63e164b00100mfvu.html 阻塞模式 Windows套接字在阻塞和非阻塞两种模式下执行I/O操作。在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里。相反,在非阻塞模式下,套接字函数会立即返回,而不管I/O是否完成,该函数所
使用socket()函数创建套接字
在Linux中,一切都是文件,除了文本文件、源文件、二进制文件等,一个硬件设备也可以被映射为一个虚拟的文件,称为设备文件。例如,stdin 称为标准输入文件,它对应的硬件设备一般是键盘,stdout 称为标准输出文件,它对应的硬件设备一般是显示器。对于所有的文件,都可以使用 read() 函数读取数据,使用 write() 函数写入数据。 “一切都是文件”的思想极大地简化了程序员的理解和
socket套接字的使用
int socket(int family,int type,int protocol); 功能:创建一个通过tcp/ip协议发送和接收网络数据的Socket 返回值:成功返回Socket描述符,失败 参数:family:指明协议族(AF_INET,AF_INET6AF_LOCAL,AF_ROUTE,AF_KEY)           type:指明套接字类型:(SOCKET_STREAM
tcp socket阻塞与非阻塞
1.sock默认为阻塞模式,下面的代码可对sock设置为非阻塞模式  int flags = fcntl(sock, F_GETFL, 0);     fcntl(sock, F_SETFL, flags | O_NONBLOCK); 2.假设当前代码为服务器,并且已经执行过如下代码, 当sock为阻塞模式,调用accept会阻塞直到一个请求到来 当sock为非阻塞模式,accept
Linux下套接字详解(五)----基于fork多进程的TCP套接字(阻塞/同步/并发)
简介一个简单的改进方案是在服务器端使用多线程(或多进程)。多线程(或多进程)的目的是让每个连接都拥有独立的线程(或进程),这样任何一个连接的阻塞都不会影响其他的连接。具体使用多进程还是多线程,并没有一个特定的模式。传统意义上,进程的开销要远远大于线程,所以如果需要同时为较多的客户机提供服务,则不推荐使用多进程;如果单个服务执行体需要消耗较多的CPU资源,譬如需要进行大规模或长时间的数据运算或文件访问
CSocket create 套接字失败,原因没有初始化套接字。
BOOL CCHFCCM2ClientApp::InitInstance() { ....... //加入下面代码:  if (!AfxSocketInit())  {   AfxMessageBox("套接字初始化失败!");   return FALSE;  } ...... }