在编程之前我安装了一些软件工具包,其中包括vc2005、gsoap、Flash builder 4.5等等,我利用vc2005开发服务端,FB来开发客户端,当然我对于这些工具以及环境还不是很熟悉,也是第一次来动手写关于这方面的,现在对于其中一些原理有了大概的了解了。

我首先动手写的是服务端,关于服务端:

在VC里我建了一个login的项目,在这个项目里最初只包含三个文件,然后我自建了一个名为ifun.h的头文件,在这个文件里我自己编写了声明了四个函数头(int ns__Login(char* strUserID, char* strPwd, wchar_t*& iLoginInfo);int ns__Add_ID(char* strUserID, char* strPwd,wchar_t*& iLoginInfo);int ns__Delete_ID(char* strUserID, wchar_t*& iLoginInfo);int ns__Modify_ID(char* strUserID, char* strPwd, wchar_t*& iLoginInfo);),这四个函数就是我设计的要向客户端提供的服务函数,分别提供四种功能,然后我利用gsoap工具通过这个文件自动生成了一些与soap服务有关的文件,当然在这些文件里对于有些文件我做了一些修改(例如,在soapserver.h文件里我加入了int is_wsdl();int ser_send_wsdl();这两个函数,前一个用于判断是否请求wsdl,后一个用于发送wsdl文件,在soapserver.cpp文件里我借鉴着编写了上面声明的那四个函数的函数体),之后我又借鉴着陆续添加了一些文件到我的工程里面,这些文件有头文件:CharConvert.h、Database.h、MailSender.h、markup.h、publicFunction.h、stdsoap2.h以及源文件:Database.cpp、markup.cpp、publicFunction.cpp、stdsoap2.cpp。在这些文件里Database.h和Database.cpp用于提供数据库服务,最后我向stdafx.h文件里加入了一些宏定义、条件编译以及设计了主文件login.cpp,文件代码如下:

// login1.cpp : 定义控制台应用程序的入口点。
//
#include <vector>

#include "stdafx.h"
#include "Database.h"
#include "soapService.h"
#include "ns.nsmap"
#include "Markup.h"
#include "PublicFunction.h"

#include <stdio.h>
#include <string.h>
#include <iostream>
#include "MailSender.h"
#define PER_MINUTE (60000)
using namespace std;
int http_get(struct soap * soap);
CDataBase g_DataBase;

int _tmain(int argc, _TCHAR* argv[])
{
 //连接数据库
 if(!g_DataBase.OpenDatabase())
 {
  return 1;
 }

Service calc;
 calc.imode |= SOAP_C_UTFSTRING;
 calc.omode |= SOAP_C_MBSTRING;
 calc.fget = http_get;

if (!(argc < 2))
 {
  // serve as CGI application
  calc.serve();
  calc.destroy();
 }
 if (calc.run(9999))
 {
  calc.soap_stream_fault(std::cerr);
  exit(-1);
 }
 return 0;
}

//能够远程读取wsdl文件
int http_get(struct soap * soap)
{
 if (0 != strcmp(soap->path, "/ns.wsdl"))
 {
  return SOAP_GET_METHOD;
 }

//读取硬盘wsdl文件
 CString cstrWsdlName = CPublicFunction::GetWsdlName();
 CString cstrWsdlPath = CPublicFunction::GetWsdlPath();

CString cstrWsdl = cstrWsdlPath + cstrWsdlName;
 CMarkup xmlWsdl;
 string strWsdl;
 if(xmlWsdl.Load(cstrWsdl))
 {
  strWsdl = xmlWsdl.GetDoc();
  cout << strWsdl.c_str() <<endl;

}

soap->http_content = "xml";

soap_response(soap, SOAP_FILE);

soap_send_raw(soap, strWsdl.c_str(), strWsdl.length());

soap_end_send(soap);

return SOAP_OK;
}

之后我便进行编译了,根据编译报错逐渐地向相应的文件中加入了一些文件包含,以及对于工程属性做了一些修改,之后便通过编译了,我的服务端便完成了。

最后我再来写我的客户端,对于客户端:

我在Flashbuilder里建了一个名为webserver的

简单服务端和客户端的开发相关推荐

  1. 小成开发日记---利用Qt/C++实现基于Udp协议的网络聊天室(分服务端和客户端的开发【轻聊v1.0.1】)

    作者:小成Charles 原创作品 转载请标注原创文章地址:https://blog.csdn.net/weixin_42999453/article/details/112363393 一.引言 最 ...

  2. Java中利用socket实现简单的服务端与客户端的通信(入门级)

    Java编程中,要想要使用网络通信,就离不开Socket编程,在此对socket进行简单的介绍.首先声明,这是一个入门级的介绍,仅仅简单的实现了客户端向服务端发送数据,服务端正常的接收数据,当接收到特 ...

  3. 《Netty权威指南 第2版》学习笔记(1)---服务端与客户端开发入门

    前言 Netty权威指南中以时间服务器为入门案例,演示了如何通过Netty完成了服务端与客户端之间的交互过程. 在开始使用Netty开发之前,先回顾一下使用NIO进行服务端开发的步骤. 创建Serve ...

  4. Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信

    本文计划采用socket实现客户端和服务端的任意双向通信,即客户端可以随时给服务端发消息,服务端也可以随时给客户端发消息,最终结果就是一个类似与QQ的聊天软件的功能. 以下代码可以直接拷贝到Eclip ...

  5. Java中利用socket实现简单的服务端与客户端的通信(基础级)

    在上一篇文章中,简单的介绍了java中入门级的socket编程,简单的实现了客户端像服务器端发送数据,服务器端将数据接收并显示在控制台,没有涉及多线程.上一篇文章的链接:Java中利用socket实现 ...

  6. python批量下载文件只有1kb_详解如何用python实现一个简单下载器的服务端和客户端...

    话不多说,先看代码: 客户端: import socket def main(): #creat: download_client=socket.socket(socket.AF_INET,socke ...

  7. python交互式编程客户端_【python】UDP网络编程:实现服务端与客户端的交互、简单的AI智能模式...

    关于UDP网络编程 UDP(user datagram protocol)的中文叫用户数据报协议,属于传输层.UDP是面向非连接的协议,它不与对方建立连接,而是直接把要发的数据发给对方. [UDP网络 ...

  8. 简单的c++服务端与客户端的通信

    本篇博客是本人没有深入学习网络通信,对其浅浅的了解了一下,只知道怎么连接以及发送内容,若内容有什么错误的地方还麻烦各位大佬可以指出来大家一起讨论一下.   服务端代码如下: #include < ...

  9. [企业化NET]Window Server 2008 R2[3]-SVN 服务端 和 客户端 基本使用

    1.  服务器基本安装即问题解决记录      √ 2.  SVN环境搭建和客户端使用 2.1  服务端 和 客户端 安装    √ 2.2  项目建立与基本使用     √ 2.3  基本冲突解决, ...

最新文章

  1. mysql大表迁移_MySQL 大表迁移
  2. linux下编译动态和静态链接库
  3. ActiveSync合作关系对话框的配置
  4. IELE:区块链的一个新虚拟机
  5. 【DP】【四边形不等式】邮局(P4767)
  6. c++虚函数和虚函数表
  7. python字典的常用方法_python操作字典类型的常用方法(推荐)
  8. mysql滴的一声就关了_关于mysql数据库在输入密码后,滴的一声直接退出界面的解决办法(详细办法)...
  9. 一个完整的C语言程序
  10. 婴儿大脑MRI图谱集
  11. Matplotlib 2 |折线图| 柱状图| 堆叠图| 面积图| 填图| 饼图| 直方图| 散点图| 极坐标| 图箱型图
  12. html获取微信授权以及微信支付
  13. halcon 图像合成与通道
  14. (附源码)springboot美食分享系统 毕业设计 612231
  15. JAVA消息(第一篇)JMS 很重要!!!!包教包会!!不闹!!!下一篇-AMQP(wire-level protocol)
  16. 乐视再次被外媒质疑,消息称FF首款汽车将无法按时出货
  17. hall 状态下,禁用指纹解锁
  18. XDOJ例题及答案第八更 密码编译 密码强度 排序2 排序3 排序算法比较器 判断奇偶性 平均数 气温波动 亲和数 求交错序列前N项和 求平均值求奇数的和
  19. 使用minio与腾讯cos文件上传下载
  20. python实现火车票查询_基于python的火车票查询工具

热门文章

  1. 计算机win7内容已满,Win7电脑C盘满了如何清理?
  2. Ubuntu设置终端打开时的默认窗口大小和位置坐标
  3. JFreeChart Hacking-补丁贴
  4. 关于生产环境跨域问题
  5. 单点登录的简单理解(SSO)
  6. OAuth2实现单点登录SSO
  7. IDM +百度网盘不限速
  8. Vue响应式原理的简单模型
  9. 时间序列_第一篇 知识概述(3)_分解
  10. BeautifulSoup用法详解