Boostasio异步TCP通讯及tcp粘包解包解决方案样本_第1页
Boostasio异步TCP通讯及tcp粘包解包解决方案样本_第2页
Boostasio异步TCP通讯及tcp粘包解包解决方案样本_第3页
Boostasio异步TCP通讯及tcp粘包解包解决方案样本_第4页
Boostasio异步TCP通讯及tcp粘包解包解决方案样本_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。Boost asio异步TCP通讯及tcp粘包解包解决方案Sphinx调用命令列表 Shell/批处理,Spring连接MySQL、 Oracle和SQL Server的数 sql防注入的登录注册 SQL,Struts 2剔除Ongl表示式危险的数据类型。 SVG绘制圆弧 svn 小冲突解决 笔记 tableview 全面自定制 int main() namespace ip = boost:asio:ip; boost:asio:io_service io_service; / Server binds to any address

2、and any port. ip:udp:socket socket(io_service, ip:udp:endpoint(ip:udp:v4(), 0); socket.set_option(boost:asio:socket_base:broadcast(true); / Broadcast will go to port 8888. ip:udp:endpoint broadcast_endpoint(ip:address_v4:broadcast(), 8888); / Broadcast data. /boost:array buffer; char* buf = 测试代码; so

3、cket.send_to(boost:asio:buffer(buf,strlen(buf)+1), broadcast_endpoint);/jQuery地区三级联动选择输入 /jquery实现网站列表切换效果( 2种方法) /js动画完美框架 文件 skiplist.cpp 5KB /* skip list */#include #include /* implementation dependent declarations */typedef enum STATUS_OK, STATUS_MEM_EXHAUSTED, STATUS_DUPLICATE_KEY, STATUS_KEY_N

4、OT_FOUND statusEnum;/ js实现鼠标hover时tab自动切换typedef int keyType; /* type of key */ /* user data stored in tree */typedef struct int stuff; /* optional related data */ recType; #define compLT(a,b) (a b)#define compEQ(a,b) (a = b) /* levels range from (0 . MAXLEVEL) */#define MAXLEVEL 15 typedef struct n

5、odeTag keyType key; /* key used for searching */ recType rec; /* user data */ struct nodeTag *forward1; /* skip list forward pointer */ nodeType; 代码 Google Go代码 package mainimport ( io/ioutil net/http net/ fmt encoding/json) /-/ 黄金数据调用示例代码 聚合数据/ 在线接口文档: www/docs/29/- const APPKEY = * /您申请的APPKEY fun

6、c main() /1.上海黄金交易所 Request1() /2.上海期货交易所 Request2() /3.银行账户黄金 Request3() /1.上海黄金交易所func Request1() /请求地址 juhe :=web:8080/finance/gold/shgold /初始化参数 param:=.Values /配置请求参数,方法内部已处理encode问题,中文参数能够直接传参 param.Set(key,APPKEY) /APP Key param.Set(v,) /JSON格式版本(0或1)默认为0 /发送请求 data,err:=Get(juhe,param) if er

7、r!=nil fmt.Errorf(请求失败,错误信息:rn%v,err) else var netReturn mapstringinterface json.Unmarshal(data,&netReturn) if netReturnerror_code.(float64)=0 fmt.Printf(接口返回result字段是:rn%v,netReturnresult) /2.上海期货交易所func Request2() /请求地址 juhe :=web:8080/finance/gold/shfuture /初始化参数 param:=.Values /配置请求参数,方法内部已处理enc

8、ode问题,中文参数能够直接传参 param.Set(key,APPKEY) /APP Key param.Set(v,) /JSON格式版本(0或1)默认为0 /发送请求 data,err:=Get(juhe,param) if err!=nil fmt.Errorf(请求失败,错误信息:rn%v,err) else var netReturn mapstringinterface json.Unmarshal(data,&netReturn) if netReturnerror_code.(float64)=0 fmt.Printf(接口返回result字段是:rn%v,netReturn

9、result) /3.银行账户黄金func Request3() /请求地址 juhe :=web:8080/finance/gold/bankgold /初始化参数 param:=.Values /配置请求参数,方法内部已处理encode问题,中文参数能够直接传参 param.Set(key,APPKEY) /APP Key /发送请求 data,err:=Get(juhe,param) if err!=nil fmt.Errorf(请求失败,错误信息:rn%v,err) else var netReturn mapstringinterface json.Unmarshal(data,&n

10、etReturn) if netReturnerror_code.(float64)=0 fmt.Printf(接口返回result字段是:rn%v,netReturnresult) / get 网络请求func Get(api string,params .Values)(rsbyte ,err error) var *. ,err=.Parse(api) if err!=nil fmt.Printf(解析错误:rn%v,err) return nil,err /如果参数中有中文参数,这个方法会进行Encode .RawQuery=params.Encode() resp,err:=http

11、.Get(.String() if err!=nil fmt.Println(err:,err) return nil,err defer resp.Body.Close() return ioutil.ReadAll(resp.Body) / post 网络请求 ,params 是.Values类型func Post(api string, params .Values)(rsbyte,err error) resp,err:=http.PostForm(api, params) if err!=nil return nil ,err defer resp.Body.Close() retu

12、rn ioutil.ReadAll(resp.Body)代码描述: 基于GO的黄金数据接口调用代码实例关联数据: 黄金数据代码 C#代码 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.IO;using Xfrog.Net;using System.Diagnostics;using System.Web; /-/ 黄金数据调用示例代码 聚合数据/ 在线接口文档: www/docs/29/ 代码中JsonObject类下

13、载地址:/download/gcm5/7458439/- namespace ConsoleAPI class Program static void Main(string args) string appkey = *; /配置您申请的appkey /1.上海黄金交易所 string 1 = web:8080/finance/gold/shgold; var parameters1 = new Dictionary(); parameters1.Add(key, appkey);/你申请的key parameters1.Add(v , ); /JSON格式版本(0或1)默认为0 strin

14、g result1 = sendPost(1, parameters1, get); JsonObject newObj1 = new JsonObject(result1); String errorCode1 = newObj1error_code.Value; if (errorCode1 = 0) Debug.WriteLine(成功); Debug.WriteLine(newObj1); else /Debug.WriteLine(失败); Debug.WriteLine(newObj1error_code.Value+:+newObj1reason.Value); /2.上海期货交

15、易所 string 2 = web:8080/finance/gold/shfuture; var parameters2 = new Dictionary(); parameters2.Add(key, appkey);/你申请的key parameters2.Add(v , ); /JSON格式版本(0或1)默认为0 string result2 = sendPost(2, parameters2, get); JsonObject newObj2 = new JsonObject(result2); String errorCode2 = newObj2error_code.Value;

16、 if (errorCode2 = 0) Debug.WriteLine(成功); Debug.WriteLine(newObj2); else /Debug.WriteLine(失败); Debug.WriteLine(newObj2error_code.Value+:+newObj2reason.Value); /3.银行账户黄金 string 3 = web:8080/finance/gold/bankgold; var parameters3 = new Dictionary(); parameters3.Add(key, appkey);/你申请的key string result3

17、 = sendPost(3, parameters3, get); JsonObject newObj3 = new JsonObject(result3); String errorCode3 = newObj3error_code.Value; if (errorCode3 = 0) Debug.WriteLine(成功); Debug.WriteLine(newObj3); else /Debug.WriteLine(失败); Debug.WriteLine(newObj3error_code.Value+:+newObj3reason.Value); / / Http (GET/POS

18、T) / / 请求 / 请求参数 / 请求方法 / 响应内容 static string sendPost(string , IDictionary parameters, string method) if (method.ToLower() = post) HttpWebRequest req = null; HttpWebResponse rsp = null; System.IO.Stream reqStream = null; try req = (HttpWebRequest)WebRequest.Create(); req.Method = method; req.KeepAli

19、ve = false; req.ProtocolVersion = HttpVersion.Version10; req.Timeout = 5000; req.ContentType = application/x-www-form-encoded;charset=utf-8; byte postData = Encoding.UTF8.GetBytes(BuildQuery(parameters, utf8); reqStream = req.GetRequestStream(); reqStream.Write(postData, 0, postData.Length); rsp = (

20、HttpWebResponse)req.GetResponse(); Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet); return GetResponseAsString(rsp, encoding); catch (Exception ex) return ex.Message; finally if (reqStream != null) reqStream.Close(); if (rsp != null) rsp.Close(); else /创立请求 HttpWebRequest request = (HttpW

21、ebRequest)WebRequest.Create( + ? + BuildQuery(parameters, utf8); /GET请求 request.Method = GET; request.ReadWriteTimeout = 5000; request.ContentType = text/html;charset=UTF-8; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); Str

22、eamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding(utf-8); /返回内容 string retString = myStreamReader.ReadToEnd(); return retString; / / 组装普通文本请求参数。 / / Key-Value形式请求参数字典 / 编码后的请求数据 static string BuildQuery(IDictionary parameters, string encode) StringBuilder postData =

23、new StringBuilder(); bool hasParam = false; IEnumeratorKeyValuePair dem = parameters.GetEnumerator(); while (dem.MoveNext() string name = dem.Current.Key; string value = dem.Current.Value; / 忽略参数名或参数值为空的参数 if (!string.IsNullOrEmpty(name)/& !string.IsNullOrEmpty(value) if (hasParam) postData.Append(&

24、); postData.Append(name); postData.Append(=); if (encode = gb2312) postData.Append(HttpUtility.Encode(value, Encoding.GetEncoding(gb2312); else if (encode = utf8) postData.Append(HttpUtility.Encode(value, Encoding.UTF8); else postData.Append(value); hasParam = true; return postData.ToString(); / / 把

25、响应流转换为文本。 / / 响应流对象 / 编码方式 / 响应文本 static string GetResponseAsString(HttpWebResponse rsp, Encoding encoding) System.IO.Stream stream = null; StreamReader reader = null; try / 以字符流的方式读取HTTP响应 stream = rsp.GetResponseStream(); reader = new StreamReader(stream, encoding); return reader.ReadToEnd(); fina

26、lly / 释放资源 if (reader != null) reader.Close(); if (stream != null) stream.Close(); if (rsp != null) rsp.Close(); 代码 PHP代码 /* * c远程传输工具 */public function post_c($,$body,$header,$type=POST) $ch = c_init(); c_setopt($ch,COPT_,$); c_setopt($ch,COPT_HEADER,0);/0只要正文 c_setopt($ch,COPT_TIMEOUT,5);/设置超时时间 c

27、_setopt($ch,COPT_CONNECTTIMEOUT,5); /将c_exec()获取的信息以文件流的形式返回, 而不是直接输出。 c_setopt($ch,COPT_RETURNTRANSFER,1); /增加header头信息 / array_push($header,Accept:application/json); / array_push($header,Content-Type:application/json); / array_push($header,http:multipart/form-data); if(count($body)0) c_setopt($ch,

28、COPT_POSTFIELDS,$body); if(count($header)0) c_setopt($ch,COPT_HTTPHEADER,$header); /设置上传文件相关 c_setopt($ch,COPT_FOLLOWLOCATION,true); c_setopt($ch,COPT_MAXREDIRS,3);/递归 c_setopt($ch,COPT_SSL_VERIFYPEER,false);/ 对认证证书来源的检查 c_setopt($ch,COPT_SSL_VERIFYHOST,0);/ 从证书中检查SSL加密算法 switch ($type) case GET: c_

29、setopt($ch,COPT_HTTPGET,1); break; case POST: c_setopt($ch,COPT_POST,1); break; case PUT: c_setopt($ch,COPT_CUSTOMREQUEST,PUT); break; case DELETE: c_setopt($ch,COPT_CUSTOMREQUEST,DELETE); break; /上传文件相关设置 c_setopt($ch,COPT_ENCODING,gzip); c_setopt($ch,COPT_USERAGENT,SSTS Browser/1.0); c_setopt($ch,

30、COPT_USERAGENT,Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0);/ 模拟用户使用的浏览器 if(c_errno($ch) return c_error($ch); $content = c_exec($ch); c_close($ch);/关闭c资源, 而且释放系统资源 $result = json_decode($content,true); if(!empty($result) return $result; else return $content; 代码 C/C+代码 /*编译指令$ /opt

31、/sybase/OCS-16_0/bin/cpre64 -m teststu.cp$ cc -m64 -g -DSYB_LP64 -I. -I/opt/sybase/OCS-16_0/include teststu.c /opt/sybase/OCS-16_0/include/sybesql.c -L/opt/sybase/OCS-16_0/lib -lsybct64 -lsybtcl64 -lsybcs64 -lsybcomn64 -lsybintl64 -lsybunic64 -rdynamic -ldl -lnsl -lm -o teststu */#include /*建立通讯区域*/

32、EXEC SQL INCLUDE SQLCA; /* * These tokens must be declared in a declare section* because they are used in declare sections below.*/EXEC SQL BEGIN DECLARE SECTION;#define TYPESIZE 13#define TIDSIZE 6EXEC SQL END DECLARE SECTION; #define EOLN 0/* * Forward declarations of the error and message handler

33、s and* other subroutines called from main().*/void error_handler();void warning_handler(); intmain(int argc, char *argv)/*声明宿主变量*/ EXEC SQL BEGIN DECLARE SECTION; /* storage for login name and password. */ char username30; char sname30; char password30; char server30; EXEC SQL END DECLARE SECTION;/*

34、错误处理*/ EXEC SQL WHENEVER SQLERROR CALL error_handler(); EXEC SQL WHENEVER SQLWARNING CALL warning_handler(); EXEC SQL WHENEVER NOT FOUND CONTINUE;/*连接到 SQL SERVER 服务器*/ /* * Copy the user name and password defined in sybsqlex.h to * the variables declared for them in the declare section. */ strcpy(u

35、sername, mymotif); strcpy(password, wxwpxh); strcpy(server, MYMOTIFVOSTRO145480); EXEC SQL CONNECT :username IDENTIFIED BY :password using :server; EXEC SQL USE testdb; EXEC SQL DECLARE c1 CURSOR FOR SELECT SNAME FROM STUDENT; EXEC SQL OPEN c1; printf(name in table studentn); do EXEC SQL FETCH c1 IN

36、TO :sname; if (sqlca.sqlcode != 0) break; printf( student name = %sn, sname ); while ( 1 ); EXEC SQL CLOSE c1; return(0); /*错误处理程序*/* void error_handler()* * Displays error codes and numbers from the SQLCA and exits with* an ERREXIT status. */voiderror_handler(void) fprintf(stderr, n* SQLCODE=(%ld),

37、 sqlca.sqlcode); if (sqlca.sqlerrm.sqlerrml) fprintf(stderr, n* ASE Error ); fprintf(stderr, n* %s, sqlca.sqlerrm.sqlerrmc); fprintf(stderr, nn); exit(-1); /* void warning_handler()* * Displays warning messages.*/voidwarning_handler(void) if (sqlca.sqlwarn1 = W) fprintf(stderr, n* Data truncated.n);

38、 if (sqlca.sqlwarn3 = W) fprintf(stderr, n* Insufficient host variables to store results.n); return;代码 Log4j配置 org.slf4j slf4j-log4j12 导入这个包,会引入下面两个jar org.springframework spring-context-support commons-logging commons-logging-api 1.1 org.springframework spring-orm !-当spring-config.xml文件中配置需要加入此包 - org.aspectj aspectjweaver org.springframework spring-webmvc文件 无缝滚动.html 1KB * margin: 0;padding: 0; #wrap ul li width: 380px; height: 230px; float: left; list-style: none; #wrap ul position: absolute; left: 0; top: 0; #wrap width: 1520px; height:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论