- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络gprs以及socket(续上) 2)socket操作 1.创建socket: int sci_sock_socket (int family, int type, int protocol); 参数: family : 地址族,目前都设置为AF_INET; type : socket类型,目前有3种 SOCK_STREAM(TCP)\SCOK_DGRAM(UDP)\SOCK_RAW(IP) 我们现在都采用SOCK_STREAM; protocol : 协议,一般设置为0; 返回值: int型的socket描述符,返回值非负时表示成功,否则失败. 例:int socket_handle (socket描述符); socket_handle = sci_sock_socket (AF_INET, SOCK_STREAM, 0); 网络gprs以及socket(续上) 2.socket连接 int sci_sock_connect(long s, struct sci_sockaddr *name, int namelen); 参数: s: socket描述符(创建socket时返回的值); name: socket地址结构体信息; namelen: 上述结构体的长度,sizeof (struct sci_sockaddr ); 返回值: 0表示成功,-1表示失败;可以用sci_sock_error来看错误类型,具体在后面会讲述怎么使用. 例:int socket_handle (socket描述符); int con_ret; struct sci_sockaddr my_addr = {0}; char *szaddr = “72”;//移动的网关 socket_handle = sci_sock_socket(AF_INET, SOCK_STREAM, 0); if (socket_handle 0) return; my_addr .family = AF_INET; my_addr .port = htons(80); my_addr .ip_addr = inet_addr(szaddr); (注:这里inet_addr函数,就是将char型变量转变成unsigned long型) SCI_MEMSET ((void*) my_addr.sa_data, 0, 8*sizeof(char)); con_ret = sci_sock_connect ((long)socket_handle , my_addr, sizeof (struct sci_sockaddr ); 存放连接地址的结构体 网络gprs以及socket(续上) 3.socket发送请求 int sci_sock_send(long s, char *buf, int len, int flags); 参数: s: socket描述符 buf: 存放发送的报头信息的缓存 len: 缓存的大小 flags: 发送设置选项,一般设为0 返回值: -1表示失败;非负值表示成功,也是发送报头的字符数. 例: (续上) int send_ret = 0; char *buf = “GET HTTP/1.1\r\n\r\n”; if (con_ret == 0)//表示连接成功 { send_ret = sci_sock_send((long )socket_handle, buf, strlen(buf), 0); } 网络gprs以及socket(续上) 4.socket接受数据 int sci_sock_recv (long s, char *buf, int len, int flags); 参数: s: socket描述符 buf: 存放接受信息的缓存 len: 缓存的大小 flags: 接受设置选项,一般设为0 返回值: -1表示失败;非负值表示成功,也是接受数据的字符数. 例: (续上) int recv_ret = 0; char buf[1999] = {0}; if (send_ret = 0)//表示发送请求成功 { recv_ret = sci_sock_recv ((long )socket_handle, buf,1999, 0); } 网络gprs以及socket(续上) 5.关闭socket int sci_sock_socketclose ((long*)s); 参数: s: socket描述符; 返回值: 0表示成功
您可能关注的文档
- 2014年语文高考2.doc
- 2015-2016 新课标人教版 选修3-1 第三章 磁场 教材分析 课件(43张).ppt
- 2014年注册会计师全国统一考试《公司战略与风险管理》科目试题及答案解析(第1套).doc
- 2015-2016-1建筑设备安装教案项目三.doc
- 2014潍坊市直考情.doc
- 2014新牛津9A单词表(附音标).doc
- 2015-2016年北京市海淀区初三第一学期期末物理试卷及答案.doc
- 2015-2016顺义初三二模数学试题及答案.doc
- 2015-2016学年 第二节《元素周期律》课时1 课件.pptx
- 2015_射频识别技术-第6章.ppt
- 2015-2016石景山初三一模数学试题及答案.doc
- 2015-2016新闽教版五年级下信息技术全册教案.doc
- 2015-2016届高三物理二轮专题检测(最新模拟题汇编)专题一_物体的平衡.doc
- 2015-2016学年高二上学期期中考试化学试题(选修).doc
- 2015-2016学年高二上学期期中学分认定模块考试英语试卷.doc
- 2015-2016年八年级数学上册3.1 确定位置课件(北师大版).ppt
- 2015-2016学年高一政治上册期中考试题666.doc
- 2015-2016学年 1.4.2《正弦函数、余弦函数的性质》(第2课时)课件.ppt
- 2015-2016学年 第3节《摩擦力》课件.pptx
- 2015-2016学年北师大版必修五 正弦定理 课件(18张).ppt
文档评论(0)