- 浏览: 30894 次
- 性别:
- 来自: 深圳
最新评论
文章列表
unsigned long int
- 博客分类:
- 数据类型
unsigned long int在C语言中是无符号长整形变量,是整形变量的一种。unsigned long int 与unsigned long是等价的,即定义的时候int可以不写。 C语言字节数为4,与long型数据一样。 unsigned long int的取值范围: 0~4294967295 即 0~(2的32次方-1) unsigned 是无符号 整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上un ...
1.首先将标志位设为Non-blocking模式,准备在非阻塞模式下调用connect函数
2.调用connect,正常情况下,因为TCP三次握手需要一些时间;而非阻塞调用只要不能立即完成就会返回错误,所以这里会返回EINPROGRESS,表示在建立连接但还没 ...
linux 客户端 Socket 非阻塞connect编程(源码)
linux 客户端 Socket 非阻塞connect编程(源码)
非阻塞connect完整代码综合如下:
int main(int argc, char** argv)
{
int sockfd, recvbytes,res,flags,error,n;
socklen_t len;
fd_set rset,wset;
struct timeval tval;
tval.tv_sec = 0;
tval.tv_usec = 300000;
struct sockaddr_in serv_addr;
char* sendD ...
Socket 非阻塞connect编程
- 博客分类:
- connect
发测试环境:虚拟机CentOS,windows网络调试助手
非阻塞模式有3种用途
1.三次握手同时做其他的处理。connect要花一个往返时间完成,从几毫秒的局域网到几百毫秒或几秒的广域网。这段时间可能有一些其他的 ...
Linux 非阻塞connect,错误码:EINPROGRESS
EINPROGRESS 115 /* Operation now in progress */
这是正确的。和windows不同的是,这里显示EINPROGRESS,windows应该是EWOULDBLOCK。感觉linux的这种表述更准确一些,确实是EINPROGRESS (正在处理),而EWOULDBLOCK应该是在网卡或者系统繁忙、无法及时处理数据。
当我们以非阻塞的方式来进行连接的时候,返回的结果如果是 -1,这并不代表这次连接发生了错误,如果它的返回结果是 EINPROGRESS,那么就代表连接 ...
非阻塞IO 和阻塞IO:
在网络编程中对于一个网络句柄会遇到阻塞IO 和非阻塞IO 的概念, 这里对于这两种socket 先做一下说明:
基本概念:
阻塞IO::
socket 的阻塞模式意味着必须要做完IO 操作(包括错误)才会
返回。
非阻塞IO::
非阻塞模式下无论操作是否完成都会立刻返回,需要通过其他方
式来判断具体操作是否 ...
http://waphi.baidu.com/wangjianzhong1981/blog/item/90ee575cbd7adb4bfaf2c074.html?ssid=0&from=2001a&uid=wapimage_1285920833585_775&pu=usm%400,sz%40240_320,gt%40500015_nokia_n95_0_2&bd_page_type=1
http://wapapp.baidu.com/wapshare/detail/17276638?ssid=0&from=2001a&uid=wapimage_1 ...
getopt(分析命令行参数)
相关函数 表头文件 #include<unistd.h>
定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);
函数说明 getopt()用来分析命 令行参数。参数argc和argv是由main()传递的参数个数和内容。
参数optstring 则代表欲处理的选项字符串。
此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。
如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,
全域变量optarg 即会指向此 ...
while [ $count -lt 200000 ]
echo "文件内容" >> 文件名 //自动换行
count=`expr $count + 1` //加号与$count 和 1之间要有空格
Shell 调用系统时间变量
获取今天时期:`date +%Y%m%d` 或 `date +%F` 或 $(date +%y%m%d)
获取昨天时期:`date -d yesterday +%Y%m%d`
获取前天日期:`date -d -2day +%Y%m%d`
依次类推比如获取10天前的日期:`date -d -10day +%Y ...
函数名: fputs 功 能: 送一个字符串到一个流 中用 法: int fputs(char *string, FILE *stream);参数: string是要写入文件的 字符串。stream 很明显是一个FILE对 象。程序例: #include <stdio.h> int main(void) { FILE *fpout=fopen("1.txt","wr");///* write a string to standard output */fputs("Hello world\n", fpout); retur ...
ssize_t是什么类型的? 解释一:为了增强程序的可移 植性,便有了size_t ,它是为 了方便系统之间的移植而定义的,不同的系统上,定义size_t 可能不一样。 在32位系统上 定义为 unsigned int 也就是说在32位系统上是32位无符号整形。在64位系统上定义为 unsigned long 也就是说在64位系统上是64位无符号整形。size_t 一般用来表示一 种计数,比如有多少东西被拷贝等。例如:sizeof操作符的结果类型是size_t , 该类型保 证能容纳实现所建立的最大对象的字节大小。 它的意义大致是“适于计量内存中可容纳的数据项目个数的无符号整数类型”。 所以,它 ...
在unix系统调用中,标准输入 描述字用stdin,标准输出用stdout,标准出错用stderr表示,但在一些调用函数,引用了STDIN_FILENO表示标准输入才,同样,标准出入用STDOUT_FILENO,标准出错用STDERR_FILENO.他们的区别: stdin等是FILE *类型,属于标 准I/O,在<stdio.h>。STDIN_FILENO等是文件描述 符,是非负整数,一般定义为0, 1, 2,属于没有buffer的I/O,直接调用系统调用,在<unistd.h>。下面一个例子是对 STDOUT_FIFENO 和STDIN_FILENO的应用:#incl ...
函数名: ferror 功 能: 在调用各种输入输出函 数(如 putc.getc.fread.fwrite等)时,如果出现错误,除了函数返回值有所反映外,还可以用ferror函数检查。 它的一般调用形式为 ferroe(fp);如果ferror返回值为0(假),表示未出错。如果返回一个非零值,表示出错。应该注意,对同一个文件 每一次调用输入输出函数,均产生一个新的ferror函 数值,因此,应当在调用一个输入输出函数后立即检 查ferror函数的值,否则信息会丢失。在执行fopen函数时,ferror函数的初始值自动置为0。
用 法: int ferror(FILE *stream); 程序例 ...