服务器客户端编程模式思考

来源:互联网 发布:大学初学java看什么书 编辑:程序博客网 时间:2024/06/04 19:17

这一阵子一直在搞企业信息化中公文流转等相关模块,其实在之前已经开发了OA系统的几个常用模块。由于之前OA系统中的工作流一直没有搞明白,又是电子签名,又是工作流,搞得我不知所云,所以我一直不敢动手。好在现在有强大的网络,在网上看了几个程序,一种“山穷水复疑无路,柳暗花明又一村”的感觉。

今天所有BUG都调差不多了,在服务器上运行,运行起来感觉还好。但最伤自尊的事情就来了。我的程序是B/S结构的,我想如果把B/S结构改成C/S结构的,像QQ,MSN之间的,服务器端的数据处理负担不就小了很多了吗?可是我在.net framework平台下开发的,不知道应该如何开发C/S结构的,或者说是C(Client)/A(Application)/D(Database)结构的?在CSDN上哪位达人,有机会看到这篇文章的话,请帮忙指点一二,将不胜感激。

下面是我的从网上搜的一点关于服务器客户端相关的东西。看半天也没搞明白。先放到这里,有时间就研究下。

===========

服务器客户端编程的最基本模式客户程序编写的基本方法。步骤:创建套接口→与远程服务程序连接→读/写数据→终止连接。创建套接口用socket函数,这个函数有三个参数,第一个参数指定协议族,如AF_INET(IPv4协议),AF_INET6(IPv6协议),AF_LOCAL(Unix域协议);第二个参数为套接口类型,有SOCK_STREAM(字节流套接口),SOCK_DGRAM(数据报套接口),SOCK_RAW(原始套接口);第三个参数一般取0。一般地,AF_INET和SOCK_STREAM的组合对应TCP协议;AF_INET和SOCK_DGRAM的组合对应UDP协议;AF_INET和SOCK_RAW的组合对应IPv4协议。Socket函数成功时返回一个套接口描述字。与远程服务程序连接使用connect函数,此函数有三个参数。第一个参数为套接口描述字;第二个参数为一个sockaddr结构,这个结构包含了远程服务程序的IP地址与端口号;第三个参数为sockaddr结构的长度。Connect函数调用成功后,套接口描述字就与远程服务程序建立好了连接,可以开始读/写了。读/写数据使用read和write函数,这两个函数均有三个参数。第一个参数为套接口描述字;第二个参数为读/写数据的缓冲区;第三个参数为缓冲区的长度。读写完后可调用函数close关闭套接口,参数为套接口描述字。 

服务程序编写的基本方法。步骤:创建套接口→绑定套接口→设置套接口为监听模式,进入被动接受连接请求状态→接受请求,建立连接→读/写数据→终止连接。绑定套接口是为本程序分配一个供使用的通信端口,使用bind函数。调用函数listen后套接口进入监听状态,再调用accept函数接受连接请求,如果没有连接请求,accept函数将使程序进入睡眠状态,直到被远程客户程序的请求所唤醒。连接一旦建立读/写与客户程序相同。服务程序一般在设置为监听模式后处于不断的接受请求、处理请求的循环中。

==========