易截截图软件、单文件、免安装、纯绿色、仅160KB

linux socket 详解

头文件:sys/socket.h
相关结构体:
struct sockaddr
{
    unsigned short sa_family;   //地址族
    char sa_data[14];   //14字节协议地址
};
struct sockaddr_in
{
    short int sin_family;   //地址族
    unsigned short int sin_port;   //端口号
    struct in_addr sin_addr;   //IP地址
    unsigned char sin_zero[8];   //填充0以保持与struct sockaddr同样大小
};
struct in_addr
 {
   unsigned long s_addr; // that’s a 32-bit long, or 4 bytes
};
注:这两个地址类型结构体在头文件中定义。
相关函数:
<打开套接字>
int socket(int af,int type,int protocol);   //返回socket套接字,在后面的调用使用它。
af指定通信发生区域(地址族)
UNIX系统有:AF_UNIX,AF_INET,AF_NS等。
DOS、WINDOWS中支持:AF_INET(网际网区域)
注:地址族与协议族相同。
type为SOCK_STREAM(建立TCP/IP连接的流式套接字)或SOCK_DGRAM(建立无连接的UDP数据报套接字)
注:进行数据报方式的数据传输sendto()和recvfrom()时要用SOCK_DGRAM 不然会产生错误。
protocol通常为0
<指定本地地址>
int bind(int sockfd,struct sockaddr *my_addr,int addrlen);
sockfd为socket返回的套接字。
my_addr指向包含本机IP地址和端口号等信息的sockaddr类型指针。
addrlen通常为sizeof(struct sockaddr)
注:定义本机地址通常为
struct sockaddr_in my_addr;
... ...
my_addr.sin_family=AF_INET; 
my_addr.sin_port=htons(指定端口号);    //htons()进行字节顺序转换,转换成网络字节优先顺序。
my_addr.sin_addr.s_addr=INADDR_ANY;   //INADDR_ANY自动获取本机IP地址
<监听请求>
int listen(int sockfd,int backlog);
backlog指定在请求队列中允许的最大请求数,进入队列的请求将等待accept()它们。
注:服务器程序的通常执行顺序为 sockfd=socket( ... ... );   bind(sockfd, ..., ...);   listen(sockfd, ..., ...);
       用SOCK_STREAM模式需要 accept()连接请求。
<接受连接请求>
int accept(int sockfd,st


相关文档:

Linux 的多线程编程的高效开发经验

2009 年 4 月 23 日
本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。
背景
Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微 ......

linux 消息队列使用经验

概述:
消息队列是linux下进程间通信的一种方式,一般用于传送少量数据,如果大量数据需要在进程间共享,则可以用共享内存。
函数接口使用:
linux下提供了以下几个接口,用于消息队列的使用,使用一般过程如下:
1. 调用ftok接口产生一个key.
    使用ftok的好处是,访问同一个消息队列的不同进程可以 ......

Linux平台下文件的压缩与解压参数说明


面对着一些后缀为tar、tar.gz、tar.bz2……就有些茫然了,
其实理解了,自然就迎刃而解了。
首先要明确一个概念,linux下面的打包和压缩是两码事,
也就是你可以对文件进行打包,但是不压缩。
来看个例子:
在我的根目录下有个名为wallpaper的文件夹,里面是一些墙纸,
我现在对这个文件夹进行打包,但 ......

Linux文件类型

目录
 
2.1 普通文件;
2.2 目录;
2.3 字符设备或块设备文件;
2.4 套接口文件;
2.5 符号链接文件;
1、Linux文件的扩展名;
2、Linux 文件类型;
3、关于本文;
4、后记;
5、参考文档;
6、相关文档;
++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++
1、 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号