Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5555
  • 博文数量: 5
  • 博客积分: 51
  • 博客等级: 民兵
  • 技术积分: 35
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-10 22:18
文章分类
文章存档

2012年(5)

我的朋友
最近访客

分类:

2012-08-08 08:41:45

这是自己以前在中华英才上的博文,今天忽然想起来,应该转移过来。希望对初学网络编程的同学有所帮助。压缩包里有所有的代码,教程,说明 linux网络编程入门与提高实例实验.rar   
可能有所错误啊,欢迎讨论:lifeng0070@gmail.com

本文档是入门级材料,是自己对以前学习的总结,主要帮助理解linux系统中的网络编程概念和架构,自己还准备了4个小实验来加深对编程框架的认识和应用。具体实现并无实际实用意义。但是我认为很有写出来的必要。希望能对大家有所帮助。也希望大家在这个基础上可以根据自己的具体要求进行修改或添砖加瓦来实现自己的大楼。

 

  

本文档主要是简单的客户端/服务器程序模型介绍,由于程序代码是在操作系统之上,所以只要工具链没问题,内核是2.6,可以直接移植到任何板子上。目前在24102440blackfin537上都验证过。在这里,我们把服务器端程序编译下到板子上,客户端的在pc上编译执行来测试服务器程序。

       下面介绍下我们要说的东西。

1          网络编程中的分层结构

2           网络编程的几个概念

3           基于TCP协议的数据传输流程

4           具体程序代码有以下几个版本

       A  简单的客户端程序和服务器端程序

服务器收到客户端从终端输入的字符传到服务器,服务器按规律处理后发回到客户端,然后客户端显示在标准输出上。

       B  可以交互的客户端程序和服务器端程序

功能同A的相同,但是客户端可以多次随意输入,可以与服务器交互,服务器可以连续处理客户端发来的数据。

       C  fork()实现多进程服务器和客户端程序

功能同B,但是服务器可以同时处理最多来自20个客户端的连接,实现典型服务器/客户端交互模式。

简单WEB实现

C功能的基础上,可以在浏览器输入PORT来访问服务器,简单传输文字和图片。(cgi部分没有实现)

E   C的实现中涉及到系统调用fork,介绍linux系统中forkwait的使用,并都有简单实现代码

 

  在这个架构上已经实现的具体应用有下面两个:

 

       1  多线程局域网聊天系统,类似QQ,应该有的一比,但是这个是在安装linuxPC上实现,只要开发板上已经移植QT,则少加修改可以移植到板子上。

 

       2  数据采集的web远程显示。是在adiblackfin上实现。由于是操作系统上的的移植,和板子以及cpu关系不大,移植应该很容易。

 

  实验代码在test目录下,BCDE对应实验为目录prac2……prac5。实验中client.c中注意服务器IP要改为你要下载服务器程序的主机或板子的IP

阅读(244) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~