Proxy源代码分析.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Proxy 源代码分析--谈谈如何学习linux 网络编程 本文出自: 作者:李培源 (2001-08-10 12:00:00) Linux 是一个可靠性非常高的操作系统,但是所有用过 Linux 的朋友都会感觉到,Linux 和 Windows 这样的傻瓜操作系统(这里丝毫没有贬低 Windows 的意思,相反这应该是 Windows 的优点)相比,后者无疑在易操作性上更胜一筹。但是为什么又有那么多的爱好者 钟情于 Linux 呢,当然自由是最吸引人的一点,另外 Linux 强大的功能也是一个非常重要的 原因,尤其是 Linux 强大的网络功能更是引人注目。放眼今天的 WAP 业务、银行网络业务 和曾经红透半边天的电子商务,都越来越倚重基于 Linux 的解决方案。因此Linux 网络编程 是非常重要的,而且当我们一接触到 Linux 网络编程,我们就会发现这是一件非常有意思 的事情,因为以前一些关于网络通信概念似是而非的地方,在这一段段代码面前马上就豁然 开朗了。在刚开始学习编程的时候总是让人感觉有点理不清头绪,不过只要多读几段代码, 很快我们就能体会到其中的乐趣了。下面我就从一段 Proxy 源代码开始,谈谈如何进行 Linux 网络编程。 首先声明,这段源代码不是我编写的,让我们感谢这位名叫 Carl Harris 的大虾,是他编 写了这段代码并将其散播到网上供大家学习讨论。这段代码虽然只是描述了最简单的 proxy 操作,但它的确是经典,它不仅清晰地描述了客户机/服务器系统的概念,而且几乎包括了 Linux 网络编程的方方面面,非常适合Linux 网络编程的初学者学习。 这段 Proxy 程序的用法是这样的,我们可以使用这个 proxy 登录其它主机的服务端口。 假如编译后生成了名为 Proxy 的可执行文件,那么命令及其参数的描述为: ./Proxy proxy_port remote_host service_port 其中参数 proxy_port 是指由我们指定的代理服务器端口。参数 remote_host 是指我们希 望连接的远程主机的主机名,IP 地址也同样有效。这个主机名在网络上应该是唯一的,如 果您不确定的话,可以在远程主机上使用 uname -n 命令查看一下。参数 service_port 是远程 主机可提供的服务名,也可直接键入服务对应的端口号。这个命令的相应操作是将代理服务 器的 proxy_port 端口绑定到 remote_host 的 service_port 端口。然后我们就可以通过代理服 务器的 proxy_port 端口访问 remote_host 了。例如一台计算机,网络主机名是 legends,IP 地址为 21,如果在我的计算机上执行: [root@lee /root]#./proxy 8000 legends telnet 那么我们就可以通过下面这条命令访问 legends 的telnet 端口。 [root@lee /root]#telnet legends 8000 Trying 21... Connected to legends(21). Escape character is ^] Red Hat Linux release 6.2(Zoot) Kernel 2.2.14-5.0 on an i686 Login: 上面的绑定操作也可以使用下面的命令: [root@lee /root]#./proxy 8000 21 23 23 是 telnet 服务的标准端口号,其它服务的对应端口号我们可以在/etc/services 中查 看。 下面我就从这段代码出发谈谈我对 Linux 网络编程的一些粗浅的认识,不对的地方还请 各位大虾多多批评指正。 ◆main() 函数 #include stdio.h #include ctype.h #include errno.h #include signal.h #include sys/types.h #include sys/socket.h #include sys/file.h #include sys/ioctl.h #include sys/wait.h #include sys/types.h #include netdb.h #define TCP_PR

文档评论(0)

智慧书苑 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档