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

linux网络编程

 网络程序和普通程序最大的区别就是,网络程序是由两部分组成的--server/client.一般情况下,是先运行server端上的程序,然后等待client端上的程序运行并建立连接,server端上的程序在一个端口监听,等待client端发来的请求.
int socket(int domain,int type,int protocol)
domain:说明通讯程序所在主机所采用的通讯协议类(AF_INET和AF_UNIX等);AF_UNIX只能用于单一的UNIX系统进程间通讯,AF_INET是针对internet的,可以用于远程主机间的通讯;
type:网络程序所采取的通讯协议(SOCK_STREAM和SOCK_DGRAM);
protocl:所采取的协议,一般设置为0就可以了,主机会自动选择合适的协议.
int bind(int sockfd,struct sockaddr * myaddr,int addrlen)
sockfd:是socket的返回的文件描述符,用于监听的socket;
addrlen:是sockaddr结构的长度;
myaddr:是一个指向sockaddr的结构体的指针;
对于sockaddr结构体的定义:
struct sockaddr
{
    unsigned short as_family;
    char as_data[14];
}
由于系统的兼容性,用另外一个结构体替代,sockaddr_in:
struct sockaddr_in
{
   unsigned short sin_family;
   unsigned short sin_port;
   struct in_addr sin_addr;
   unsigned char sin_zero[8];
}
sin_addr一般是设置为INADDR_ANY,可以接受任何主机的通讯,sin_port是要监听的端口,bind()将本地端口和socket绑定在一起,成功后返回0,失败时返回-1,和socket()一样.
int listen(int sockfd,int queuelen)
sockfd:bind()的socket描述符,用于监听的socket描述符;
queuelen:等候排队的最大长度.listen()将bind()的socket描述符变为监听的套接字,返回的情况和bind()一样.
int accept(int sockfd,struct sockaddr * addr,int addrlen)
sockfd:是listen后的文件描述符;
addr和addrlen:是给client端程序填写的,服务器只要传递指针就可以了;
bind(),listen()和accept()是服务端用的函数,accept()函数调用时,server端会一直阻塞到有一个client发出了连接请求,accept()成功时返回最后的服务器端的文件描述符,现在服务器端可以向该描述符写信息了.失败时返回-1.
int connect(int sockfd,struct sockaddr *servaddr,int addrlen)
sockfd:socket()返回的文件描述符;
servaddr:存储了server端的连接信息,里面的sin_family是服务器端的地址
addrlen:servaddr的长度;
connect()是


相关文档:

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

linux下Apache启动失败的一些体会

系统重启后发现,Apache启动失败
报错如下:
# ./apachectl start
(98)Address already in use: make_sock: could not bind to address [::]:80
no listening sockets available, shutting down
Unable to open logs
查了下80
#netstat -Inp|grep 80
tcp        0 &n ......

在Linux下解压windows下的rar文件

linux下默认只能解压zip压缩文件,而rar文件默认没有解压支持的工具,这里提供一个简单的方式,安装rar工具,支持linux下解压rar文件。
1:首先下载rar解压工具,这里用 rarlinux-3.6.b6.tar.gz,给出一个网友提供的版本下载地址:
http://blogimg.chinaunix.net/blog/upfile2/080226173046.gz
2:接下来执行如下操作
t ......

linux文件系统中检测U盘挂载全权讲解

里学习linux文件系统技巧,挂载U盘是否连接的技巧,文中以案例讲解。望能给大家带来小小的帮助。
Linux文件系统是异步的,也就是说写一个文件不是立刻保存到介质(硬盘,U盘等)中,而是存到缓冲区内,等积累到一定程度再一起保存到介质中。如果没有umount就非法拔出 U盘,程序是不知道的,fopen,fwrite等函数都依然返回正 ......

linux c oci 远程连接例子

以下是我的测试oci的例子!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "oci.h"
static OCIServer        *srvhp;
static OCISession       *p_session;
static OCIEnv    &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号