代码改变世界

随笔分类 -  UNIX网络编程

unix网络编程各种TCP客户-服务器程序设计实例(三)

2012-08-25 10:06 by javaspring, 364 阅读, 收藏,
摘要: 第五种 TCP预先派生子进程服务器程序:对预先派生子进程服务器的最后一种改动就是由父进程调用accept,然后再将所接受的已连接描述字传递给子进程。父进程必须跟踪子进程的忙闲状态,以便给空闲子进程传递新的描述字。为每个子进程维护一个信息结构,用来管理各子进程。在调用fork之前,先创建一个字节流管道(Unix域的字节流套接口),它是Unix域的字节流套接口。当子进程派生后,父进程关闭一个描述字(sockfd[1]),子进程关闭另一个描述字(sockfd[0]),此外,子进程将流管道的字节所在端(sockfd[1])复制到标准输出。child.h:typedef struct { pid_t.. 阅读全文

unix网络编程各种TCP客户-服务器程序设计实例(二)

2012-08-21 21:42 by javaspring, 273 阅读, 收藏,
摘要: 前面我们介绍了unix网络编程各种TCP客户-服务器程序设计实例附环境搭建和编译方法本节我们接着介绍另外的几种TCP客户-服务器程序;第四种:TCP并发服务器,每个客户一个子线程在我们前面的并发服务器程序例子中可以看出:父进程接受连接,派生子进程,子进程处理与客户的交互。这种模式的问题:fork()是昂贵的。内存映像要从父进程拷贝到子进程,所有描述字要在子进程中复制等等。fork()子进程后,需要用进程间通信在父子进程之间传递信息。一个进程中的所有线程共享相同的全局内存,这使得线程很容易共享信息,但是这种简易型也带来了同步问题。一个进程中的所有线程不仅共享全局变量,而且共享:进程指令,大多数数 阅读全文

unix网络编程之基本套接口编程

2012-08-16 21:30 by javaspring, 209 阅读, 收藏,
摘要: 第一章套接口编程简介IPv4套接口地址:“网际套接口地址结构”通用套接口地址结构:套接口函数被定义为采用指向通用套接口地址结构的指针,这要求对这些函数的任何调用都必须将指向特定于协议的套接口地址结构的指针类型转换成指向通用套接口地址结构的指针:套接口地址结构的比较:值-结果参数:当把套接口地址结构传递给套接口函数时,总是通过指针来传递的,即传递的是一个指向结构的指针。1, 从进程到内核传递套接口地址结构有3个函数:bind、connect、sendto,这3个函数的一个参数时指向套接口地址结构的指针,另一个参数是结构的整数大小,例如:2,与前面的传递方向相反,从内核到进程的传递套接口地址结构有 阅读全文

unix网络编程各种TCP客户-服务器程序设计实例附环境搭建和编译方法(一)

2012-08-16 21:28 by javaspring, 347 阅读, 收藏,
摘要: 前言:在以前的UNIX网络编程系列中我们介绍了有关网络编程的理论知识,本文将在其基础上总结《UNIX网络编程》上的9种不同的TCP客户程序设计例子,希望能给大家带来帮助。本文只介绍实例,相关的理论知识请参考《unix网络编程》或者本博文的http://blog.csdn.net/ts173383201/article/category/1213821系列;在出代码之前,可能有很多同学遇到《UNIX网络编程》上的例子编译的问题,下面就先介绍网络编程上例子编译环境的搭建方法,这里先说明我们系统是ubuntu:一,到http://download.csdn.net/detail/ts17338320 阅读全文

unix网络编程之简介和运输层TCP/UDP

2012-08-15 20:07 by javaspring, 227 阅读, 收藏,
摘要: 前言:本文只介绍了有关UNIX网络编程的理论知识,具体的应用和例子在稍后的博文中将更新第一章简介一个简单的服务器程序步骤:说明:1.创建TCP套接口 2.捆绑服务器的众所周知端口 3.把套接口变换成监听套接口 4.接受客户连接,发送应答,服务器进程在调用accept函数后处于睡眠状态,它等待客户的连接和内核对它的接受。TCP连接使用三路握手来建立,当握手完毕,accept函数返回,其返回值是一个已连接描述字的新描述字。OSI模型第二章传输层:TCP和UDPUDP:用户数据报协议我们称UDP提供无连接服务,因为UDP客户与服务器不必存在长期的关系。例如:一个UDP客户可以创建一个套接口并发送一个 阅读全文