Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

Linux C编程---网络编程

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

   现在让我们来编译这两个程序:


root@linuxaid#gcc -o server server.c
root@linuxaid#gcc -o client client.c

   然后在一台计算机上先运行服务器程序,再在另一个终端上运行客户端就会看到结果;如果不运行服务器程序而先运行客户程序将立即提示"Connect: Connection refused",这就是TCP套接口的好处,如果是UDP套接口将会有一个延时才会得到错误信息(UDP套接口后面有介绍)。

  建立一个TCP连接需要三次握手,而断开一个TCP则需要四个分节。当某个应用进程调用close(主动端)后(可以是服务器端,也可以是客户端),这一端的TCP发送一个FIN,表示数据发送完毕;另一端(被动端)发送一个确认,当被动端待处理的应用进程都处理完毕后,发送一个FIN到主动端,并关闭套接口,主动端接收到这个FIN后再发送一个确认,到此为止这个TCP连接被断开。

  2、UDP套接口

  UDP套接口是无连接的、不可靠的数据报协议;既然他不可靠为什么还要用呢?其一:当应用程序使用广播或多播是只能使用UDP协议;其二:由于他是无连接的,所以速度快。因为UDP套接口是无连接的,如果一方的数据报丢失,那另一方将无限等待,解决办法是设置一个超时。

  在编写UDP套接口程序时,有几点要注意:建立套接口时socket函数的第二个参数应该是SOCK_DGRAM,说明是建立一个UDP套接口;由于UDP是无连接的,所以服务器端并不需要listen或accept函数;当UDP套接口调用connect函数时,内核只记录连接放的IP地址和端口,并立即返回给调用进程,正因为这个特性,UDP服务器程序中并不使用fock函数,用单进程就能完成所有客户的请求。




 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 2 3下一页


上一篇:Java入门(4) 第一个Java程序   下一篇:Linux网络代码导读v0.2

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
·Motorola微处理器bootloader分析与应用
·Fedora Core5 NFS服务器搭建过程介绍
·Linux系统:让内存不再泄漏的实用技巧
·新手看招 手把手教你安装VMware虚拟机
·“侵权事件” 红帽称微软企图干扰用户
·删除Linux后 如何找回Windows启动菜单
·菜鸟乐园 Linux中常见文件系统格式介绍
·Linux操作系统下IPTables配置方法详解
·实用技巧 Linux系统的经典使用技巧八则
·Linux系统文件优化及磁盘检查方法介绍
推荐文章
·配置CUPS--在LINUX下轻松打印(二)
·使自己的程序成为后台运行的守护进
·用PHP发送MIME邮件(一)
·ORACLE回滚段管理(下)
·配置Linux服务器Samba+多硬盘+多网
·Linux系统中网络配置详解
·GRUB多重启动管理器
·GTK v1.2 Tutorial(英文)
精彩文章
·理解Linux系统的日志
·Linux 指令篇:DOS相容指令--mcd
·Linux 核心--6.进程间通讯机制
·Linux 网管 123 --- 第7章. 自订的
·当Linux分区出错时的处理
·TCPD 与使用 IPFWADM 来设定防火墙
·ar和nm命令的使用
·ssh软件包:Sftp,scp和ssh-agent
·一个用JSP写的论坛的实例(一)
·读核日记(四)
·UW IMAP 服务器的性能优化
·JAVA系列讲座5(基础篇之JAVA注释文
·抛弃“free software”,采用“open
·Linux 指令篇:文件系统--dd
·JSP的环境引擎--Resin
·Ant实践
·Linux 集群技术
·TCP/IP各层的安全性和提高各层安全
·Java入门(9) JAVA与GUI
·Mysql InnoDb详解
·Linux下计算程序运行时间的两种方法
·如何在RedHat中列出彩色文件
·Linux单网卡绑定多IP与多网卡共用单
·Java 2 EE开发指南(二)
·GRUB多重启动管理器
·[显卡]nvidia显卡的安装大全
Power by linux-cn.com 粤ICP备05006655号