send函数 int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是server应用程序都用send函数来向TCP连接的还有一端发送数据。客户程序一般用send函数向server发送请求,而server则通经常使用...
分类:
其他好文 时间:
2014-07-16 19:01:38
阅读次数:
192
服务端:#!/usr/bin/pythonimportsockets=socket.socket()host=‘10.67.15.96‘port=889s.bind((host,port))s.listen(5)whileTrue:c,addr=s.accept()print‘++++++‘c.send(‘server‘)b=c.recv(1024)printbc.close()客户端:#!/usr/bin/pythonimportsockets=socket.socket()host=‘10.6..
分类:
其他好文 时间:
2014-07-14 16:24:40
阅读次数:
183
以前一直有这么一个小小的疑惑,当一个进程注册一个套接字后,如果这个套接字没有被调用recv函数接受数据包,那么这个套接字能接受到数据包吗? 或者这样说,如果我的程序注册了一个套接字去接受数据包,但是每收到一个数据包都需要很长一段时间处理,并且在处理数据包的途中recv函数使没有被调用的,那么如果程序再处理数据包的途中有数据包到来,那我的程序会不会漏过这些数据包(那个包到达的时候程序在处理别的包,而...
分类:
系统相关 时间:
2014-07-13 18:43:39
阅读次数:
259
Python服务器开发三:Socketsocket是操作系统中I/O的延续,它可以使进程和机器之间的通信成为可能。socket可以看成一个标准的文件描述符。不同的是文件需要用open()函数打开,而socket用socket()函数建立.recv()、send()函数和read()、write()函...
分类:
编程语言 时间:
2014-07-09 23:37:56
阅读次数:
284
Select模型原理利用select函数,推断套接字上是否存在数据,或者是否能向一个套接字写入数据。目的是防止应用程序在套接字处于锁定模式时,调用recv(或send)从没有数据的套接字上接收数据,被迫进入堵塞状态。select參数和返回值意义例如以下:int select (IN int nfds...
分类:
其他好文 时间:
2014-07-07 12:25:32
阅读次数:
326
引言:
在C编程中,errno是个不可缺少的变量,特别是在网络编程中。如果你没有用过errno,那只能说明你的程序不够健壮。 为什么会使用errno呢?这是系统库设计中的一个无奈之举,他更多的是个技巧,而不是架构上的需要。我们观察下函数结构,可以发现,函数的参数返回值只有一个,这个返回值一般可以携带错误信息,比如负数表示错误,而正数表述正确的返回值,比如recv函数。但是对于一些返...
分类:
编程语言 时间:
2014-07-05 23:28:58
阅读次数:
397
错误码很重要,可以由此判断网络连接到底发生了神马事情,从而驱动高层逻辑的行为。只有笼统的错误码判断的网络层是不够规范的,鄙人觉得有些错误码还是需要在网络层就区分开的,特此记录一些当前实验的错误码以及发生原因。以下是一部分在async_receive()的handler处捕获到的比较有用的错误码错误码...
分类:
其他好文 时间:
2014-06-28 18:44:59
阅读次数:
137
linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别 UDP的socket在某些情况:如对方关闭时,本地可能sendto不出去数据,然后recvfrom就会被阻塞,这时就需要设置 这两个参数的值提高程序质量。linux: struct....
分类:
其他好文 时间:
2014-06-26 00:38:51
阅读次数:
504
主要难点在于设置recv()与send()的超时时间,具体要注意的事项,请看代码注释部分,下面是代码:[cpp]view plaincopyprint?#include#include#include#include#include#include#ifdef_WIN32///包含winsocket...
先来谈谈为什么会出现select函数,也就是select是解决什么问题的?平常使用的recv函数时阻塞的,也就是如果没有数据可读,recv就会一直阻塞在那里,这是如果有另外一个连接过来,就得一直等待,这样实时性就不是太好。这个问题的几个解决方法:1. 使用ioctlsocket函数,将recv函数设...