scoket:

1.socket

  /**

第一个参数(domain): 表示用什么协议 AF_INET 为IPV4开发

第二个参数(type): 表示scoket为什么类型SOCK_STREAM为TCP  SOCK_DGRAM(UDP,报文);

第三个参数(protocol): 如果输出0 就表示跟scoket的类型来设置相对应的协议

如果返回值>0 就表示成功

*/

self.clientSocket=socket(AF_INET, SOCK_STREAM, 0);

2.connect

/**

参数

1> 客户端socket

2> 指向数据结构sockaddr的指针,其中包括目的端口和IP地址

服务器的"结构体"地址

提示:C 语言中没有对象

3> 结构体数据长度

返回值

0 成功/其他 错误代号,非0即真

*/

struct sockaddr_in serverAddress;

// 1> 协议族

serverAddress.sin_family = AF_INET;

// 2> ip 找机器 inet_addr 会对地址做字节翻转

serverAddress.sin_addr.s_addr = inet_addr(host.UTF8String); //host为发送的字符串

// 3> 端口找程序,将整数的高低位互换(字节翻转)

serverAddress.sin_port = htons(port);//port为端口;

connect(self.clientSocket, (const struct sockaddr *)&serverAddress, sizeof(serverAddress));

发送

/**

参数

1> 客户端socket

2> 发送内容地址 void * == id

3> 发送内容长度 => 字节长度

4> 发送方式标志,一般为0

返回值

如果成功,则返回发送的字节数,失败则返回SOCKET_ERROR

*/

ssize_t sendLen = send(self.clientSocket, msg.UTF8String, strlen(msg.UTF8String), 0);

NSLog(@"发送了 %ld %tu %ld", sendLen, msg.length, strlen(msg.UTF8String));

接收数据

/**

参数

1> socket

2> 接收内容的地址

3> 长度

4> 接收标志,如果是0,标示阻塞式,一直等待服务器的返回数据

C语言中,数组的名字,就是指向数组第一个元素的指针

返回值

接收数据的长度

*/

uint8_t buffer[1024];

ssize_t recvLen = recv(self.clientSocket, buffer, sizeof(buffer), 0);

NSLog(@"接收 %ld 字节", recvLen);

// 获取服务器返回的二进制数据

NSData *data = [NSData dataWithBytes:buffer length:recvLen];

// 转换成字符串

NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

断开连接

  // 断开连接

  close(self.clientSocket);

  }

注:基本上就这5部分就可以达到数据的传送和读取,测试的时候需要在终端中输入指令。 sorry指令忘记了...明天晚上补上...

终端:  nc -lk 端口号 在本地开一个端口,进行监听,可以作为简单的本地服务器进行简单的接受信息

网络笔记01-2 scoket的更多相关文章

  1. 软件测试之loadrunner学习笔记-01事务

    loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...

  2. 【技能大赛笔记01】Zigbee点对点按键控制程序开发

    [技能大赛笔记01]Zigbee点对点按键控制程序开发 --2017年"物联网物联网技术应用与维护"任务五题1(中职组) 1.题目要求 2.工程文件 在比赛中,提供了一个基于Bas ...

  3. Redis:学习笔记-01

    Redis:学习笔记-01 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 1. Redis入门 2.1 ...

  4. Java:并发笔记-01

    Java:并发笔记-01 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 1. 进程与线程 本章内容 进程和线程的概念 并行和并发的概念 线程基本应用 1.1 ...

  5. 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!

    <30天自制操作系统>笔记(01)——hello bitzhuwei's OS! 最初的OS代码 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以 ...

  6. 《The Linux Command Line》 读书笔记01 基本命令介绍

    <The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...

  7. PHP 学习笔记 01

    例子: 为什么要学PHP 主观原因: 前段时间在学校处理了毕业的一些事情,回到上海后开始了找工作的旅程.意向工作是WPF开发或者ASP.NET 作为后端的WEB开发. 陆陆续续一直在面试,其中有一家公 ...

  8. Linux网络服务01——Linux网络基础设置

    Linux网络服务01--Linux网络基础设置 一.查看及测试网络 1.使用ifconfig命令查看网络接口 (1)查看活动的网络接口 ifconfig命令 [root@crushlinux ~]# ...

  9. JS自学笔记01

    JS自学笔记01 1.开发工具 webstorm 2.js(javascript) 是一门脚本.解释性.动态类型.基于对象的语言 含三个部分: ECMAScript标准–java基本语法 DOM(Do ...

  10. 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!【转】

    转自:http://www.cnblogs.com/bitzhuwei/p/OS-in-30-days-01-hello-bitzhuwei-OS.html 阅读目录(Content) 最初的OS代码 ...

随机推荐

  1. How To Install Development Tools In Linux

      In this brief tutorial, we will be discussing how to install development tools in popular Linux di ...

  2. Android语音识别(本地+第三方)

    语音识别主要的功能就是在用户不方便输入的时候找一个替代输入的选择. 1.本地语音识别 下面的代码首先创建SpeechRecognizer对象,并设置回调函数监听器.当在点击监听器中调用doSpeech ...

  3. 六、Android学习笔记_JNI_c调用java代码

    1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // ...

  4. VMware Workstation CentOS-6.4-x86_64-minimal 配置网络以及安装JDK和tomcat

    1.配置网络(能够联网)转自:http://blog.sina.com.cn/s/blog_75ad10100101ma4c.html 1)vmware的网卡连接方式选择为桥接(bridged)不要用 ...

  5. Mysql中IFNULL与IN操作

    Mysql IFNULL操作 项目中用到的,当SQL查询某个字段为空的时候,查询结果中设置其值为默认值.最笨的方法当然是对查询结果进行处理了,遍历查询结果,当为空的时候,设置其值: 代码如下 复制代码 ...

  6. C++中extern “C”含义深层探索

    C++中extern “C”含义深层探索 extern “C” 是一个双向都需要用到的语法表示,就是说在cpp引用c头文件,或者c引用cpp文件时都需要用到.但extern “C” 永远只能在cpp引 ...

  7. 利用PowerDesigner绘制PDM生成SQL Server数据库

    PowerDesigner是个很强大的建模工具,可以利用它绘制各种图形,本文利用该工具绘制PDM,进而生成SQL Server数据库. 比如绘制一个简单的学生选课.教师授课管理系统的PDM: pk表示 ...

  8. 一路走过的2013,welcome to 2014

    驻入博客园,还是在大学时,至今没写过一篇博客,一直都是在看人家写的博客.2014 年第一天,就从这一天,开启博客之旅,与大家分享好书,分享技术,结交好朋友. 简单,介绍下自己,大三实习,因为热衷于互联 ...

  9. linux系统版本查看命令

    发布:theboy   来源:net   [大 中 小] 查看linux系统版本的命令 有如下命令可供参考: # lsb_release -a LSB Version:    :core-3.1-ia ...

  10. PHP 图片文件上传代码分享

    分享下php上传图片文件的一段代码,挺不错的. 通过 PHP,可以把文件上传到服务器.加入一些图片的判断,如果不加判断文件的类型就可以上传任意格式的文件. 当然了,会禁止上传php文件,以及其它程序代 ...