
SOCKET
haizhongyun
“守法”转载
展开
-
Select模型---很经典的
Select模型---很经典的分类: 套接字与多线程的东西 2009-10-10 16:09 69人阅读 评论(0)收藏 举报Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是转载 2012-04-14 09:23:18 · 492 阅读 · 0 评论 -
windows下socket编程:区分shutdown()及closesocket()
以下描述主要是针对windows平台下的TCP socket而言。首先需要区分一下关闭socket和关闭TCP连接的区别,关闭TCP连接是指TCP协议层的东西,就是两个TCP端之间交换了一些协议包(FIN,RST等),具体的交换过程可以看TCP协议,这里不详细描述了。而关闭socket是指关闭用户应用程序中的socket句柄,释放相关资源。但是当用户关闭socket句柄时会隐含的触发TCP连接转载 2012-06-18 15:11:45 · 707 阅读 · 0 评论 -
gethostbyname用法实例c++
经测试得出如下结论:该函数获取的是有网络连接的网卡地址。如果笔记本电脑有无线网卡和一般网卡的话:当两个网络连接都禁用时,只获取一个地址,且是127.0.0.1当都启用且真的连接上网络时,获取两个网卡的地址。当只用无线能上网,但网口不插网线时,只有无线网卡的地址。当网口插上网线且禁用无线时,只有一般网卡的地址,不论是手动配置还是自动获取都可以正确获取该ip。用法举例:原创 2012-05-24 16:58:27 · 6166 阅读 · 0 评论 -
关于Socket和IOCP的一些值得注意的地方
IOCP是一整套高性能的IO操作异步模型,可以用在文件操作也可以用在网络SOCKET操作上面。当用在网络SOCKET上时,在服务器端主要配合AceeptEx WSASend WSASendto来使用,在客户机端主要配合ConnectEx WSARecv和WSARecvFrom来使用。这几天用IOCP模型模仿IPMSG软件时有一些感触,分享如下:(这里没有具体的使用常识,这部分请参考《Windows转载 2012-06-08 00:57:34 · 702 阅读 · 0 评论 -
socket 接收线程实现(帖子)
我的服务程序在一个客户端接入以后就开一个接收线程,负责接收它的数据。 在此期间客户机保持和服务器的连接。 实际运行时,发现这个接收线程一运行,cpu利用率达到100%,根本接收不了其他的连接,请问大家怎么处理接收线程的?怎么改善接收线程的性能? // 接收数据线程如下: dword winapi recvthre转载 2012-05-14 15:45:40 · 1680 阅读 · 0 评论 -
套接字究竟是什么?
网络整理:书上说的端口是数据结构和I/O缓存区”是指硬件端口,网络编程里的端口可以理解为应用程序的ID。说得形象点,套接字就类似我们人类的门我们打开门,通过门外面的人可以进来我们推开门,里面的人也可以出去同样,外面的数据可以通过socket把它存储在本地机器的缓冲区里等待本地机器接收本地机器的数据可以通过socket放在缓冲区里等待发送到对方机器上当我们把门给关上时原创 2012-05-31 21:25:13 · 6205 阅读 · 2 评论 -
TCP面向连接中的“连接”究竟是什么,可靠与不可靠
网上搜集的一些答案:连接是对状态的保持,我是这样理解的实际上就是在客户端和服务器端都维护一个变量,这个变量维护现在数据传输的状态,例如传输了哪些数据,下一次需要传输哪些数据,等等,并不是真的我们想象中的真的有什么东西连接着这两端,因为无论对于有连接还是无连接,都有网线连着呢(不包括无线网),所以连接根本就不是是否真的有什么东西把他们连接起来,真实的含义就是我上面说的,两边维护一原创 2012-05-31 19:59:02 · 11437 阅读 · 0 评论 -
socket中send()和rece()函数详解
1、send函数int send(SOCKET s,const char FAR *buf,int len,int flags);不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端套接字描述符;第二个参数指明一个存放应用程序转载 2012-05-29 22:58:41 · 1506 阅读 · 0 评论 -
用select检测对方断开tcp连接
使用阻塞式socket发送和接受数据,但是由于没有建立心跳机制,远端服务器在一定时间内(系统设定)没有活动数据,就会断开连接。无奈只能在每次发送数据之前检测对方是否断开连接,当然在发送数据之前检测的目的是保证这次发收数据不会因为对方断开连接而接受数据失败(对方断开连接,发送还是会成功的)。这个方法比较挫~ 使用了select + recv fd_set read_set; st转载 2012-05-29 17:17:29 · 9318 阅读 · 2 评论 -
阻塞和非阻塞
阻塞函数在完成其指定的任务以前不允许程序调用另一个函数。例如,程序执行一个读数据的函数调用时,在此函数完成读操作以前将不会执行下一程序语句。当服务器运行到accept语句时,而没有客户连接服务请求到来,服务器就会停止在accept语句上等待连接服务请求的到来。这种情况称为阻塞(blocking)。而非阻塞操作则可以立即完成。比如,如果你希望服务器仅仅注意检查是否有客户在等待连接,有就接受连接,否则转载 2012-05-27 06:57:45 · 6581 阅读 · 0 评论 -
实现服务器端的多线程SOCKET Server C++/VC
想要实现的功能:在服务器端有一个控制台程序(或者Windows服务),与多个客户端程序通讯,其中主线程有一个socket绑定在一个固定端口上,负责监听客户端的Socket信息。每当启动一个客户端程序,客户端发送来一个socket连接请求,server端就新开启一个线程,并在其中创建一个socket与该客户端的socket通讯,直到客户端程序关闭,结束该线程。主线程中的socket在应用程序退出时关转载 2012-05-08 17:31:47 · 1857 阅读 · 0 评论 -
网络整理---组网及网络通信
广播式网络是网络中的一台计算机发送消息...网内的所有计算机都可以收到数据..而我是这么理解的,网络上仅有一条信道,所有的主机都共享信道,所有有消息出现时,所有的主机都会收到这条消息,然后筛选。 向某台主机发送信息就如在公共场所喊人:“老王,有你的 信!”在场的人都会听到,而只有老王本人会答应,其余的人仍旧做自己的事情。发往指定地点的信息(报文)将按一定的原则分成组或包(packet原创 2013-08-20 00:25:58 · 1603 阅读 · 0 评论