LINUX网络编程
网络编程和其他编程最大的区别就是:网络编程由两部分组成,客户端和服务器端。先启动服务器端、等待客户端的程序运行并建立连接;一般来说,是服务器端的程序在一个端口上监听,等待有一个客户端的程序发来请求。
网络编程还要引入一个概念:协议。在网络通信中,通信双方必须要以约定好的方式来传递信息,这种约定就是所谓的协议。现在用得最多的网络协议就是TCP/IP协议。
一、TCP/IP协议简介:
TCP/IP是互联网上最通用的网络协议,由四层构成:
1、互联IP层:负责将数据包从一个源节点传动到一个目标节点,节点由一个4字节的数字组成,即IP地址;网关收到数据包并根据该包目标IP来转发到下一个网关,直到到达目的地为止。
2、传输层即TCP/IP层,负责检查传输的数据包的正确性;数据包可能在网络上丢失,TCP负责检查数据包是否丢失或出错,然后请求重发数据包,直到获得正确而完整的数据为止。
而UDP则不对数据包的正确性进行检查,如果使用UDP协议,又要保证数据正确性,应用层负责对此加以检查;
3、应用层一般有http协议、ftp协议等,其关注传来/传出的数据的用途,关注更上层的处理细节,而不管网络层是如何传输数据的;
4、网络接口层:负责数据帧的发送和接收,帧是独立的网络信息传输单元;网络接口层将帧放在网络上,或从网络上读取帧;
所谓socket编程,就是指根据系统实现了TCP/UDP或IP层的接口,调用该接口进行网络编程;一般都使用系统已经实现的TCP/UDP协议接口来从事网络编程,只有少数特殊需求,需要直接对IP层接口进行调用;
二、常用网络编程函数
1、服务器程序编写的基本方法:
创建套接口 socket
绑定套接口 bind
 
相关文档:
linux并不是实时操作系统,把下面的代码运行一遍就能够理解了,代码有很详细的注释。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <signal.h>
#include <string.h>
void * thr_fun(void *arg)
{
int policy, ret;
str ......
搞了三天的OpenCV终于把这个类库加上去了。原本是使用Red Hat Linux 9,但是强烈不推荐,因为基本上很多很多的软件都要重新升级更新。gcc必须升级到4.x,则gmp和mpfr也要更新,make也要到3.8版本,并且glibc也必须在2.6版本。编译gcc实在是太痛苦了,无比无比的痛苦,耗时3个多hours,还是来了个error(glibc必须升级)。编 ......
iptables是一个
Linux
下优秀的nat+防火墙工具,我使用该工具以较低配置的传统pc配置了一个
灵活强劲的防火墙+nat系
统,小有心得,看
了网上也有很多这方面的文章,但是似乎要么说的比较少,要么就是比较偏,内容不全,容易误导,我研究了一段时间的iptables同时也用了很久,有点滴
经验,写来供大家参考,同时也备 ......
linux命令大全 cat cd
chmod chown
cp cut
名称:cat
使用权限:所有使用者
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n ......
1、#locale (locale命令用于查看使用语言详细信息)
2、#export LC_ALL=POSIX (export命令导出修改LC_ALL语言选项)
3、redhat-config-network 、 netconfig配置网络服务
4、重启 init 6 或者 shutdown -r now
5、shutdown -h 关闭系统
6、vi编辑文档后,输入shift + :后输入q,回车退出,输入wq保存退出。
7、增加用户 ......