易截截图软件、单文件、免安装、纯绿色、仅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配置iptables和squid

iptables-save > ipt.v1.0
iptables-save > ipt.v1.1
iptables-restore < ipt.v1.0
cp /etc/sysconfig/iptables iptables.raw
service iptables save
ip伪装的脚本文件iptables_masquerade
#!/bin/bash
//设置linux系统允许ip包的转发
echo "1" > /proc/sys/net/ipv4/ip_forward
//加载实现 ......

【Linux桌面应用】sudo的用法及配置

sudo是linux下常用的允许普通用户使用超级用户权限的工具。
它的主要配置文件是sudoers,linux下通常在/etc目录下,如果是solaris,缺省不装sudo的,编译安装后通常在安装目录的 etc目录下,不过不管sudoers文件在哪儿,sudo都提供了一个编辑该文件的命令:visudo来对该文件进行修改。强烈推荐使用该命令修改 sudoers,因为 ......

【Linux桌面应用】Linux服务配置过程

1)关闭防火墙
#service iptables stop<enter> \\关闭防火墙
#chkconfig iptables off<enter> \\关闭开机启动
2)IP地址的配置
①命令方式
#netconfig<enter>  \\设置IP地址、子网掩码、网关、DNS
#vi /etc/sysconfig/network \\主机名
#hostname XXX   \\设置主机名称
#exit  ......

很多程序死在linux 服务进程中

今天发现很多程序死在linux 服务进中
问个问题 今天发现很多程序死在linux 服务进中
已经死了好多天了。用crontab 都定在 凌晨0点跑。
想知道如何查看 服务器哪方面的资源太少导致进程死在里面?
ps -ef|grep load/script | awk '{print $2}' 把死进程的 ID 打印出来
......

公开 《Unix/Linux下的Curses库开发指南》全书内容

 《Unix/Linux下的Curses库开发指南》于2003年由清华出版社出版,合同在2008年结束。这是国内唯一的一本关于Curses库开发指南的图书。本书无意再版,因此特意公开全书内容,所有的章节会逐渐放出。希望对大家有用。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号