美文网首页
iOS IP地址&端口号&网络模型&Socket

iOS IP地址&端口号&网络模型&Socket

作者: iOS_July | 来源:发表于2019-03-29 10:43 被阅读0次

一、IP地址

图一

二、端口号

图二

三、网络模型

图三
TCP/IP网络模型
图四 图五
传输协议TCP\UDP
图六

四、Socket 详情可去此处

图七
Socket通信过程
图八
  • Socket在应用层和传输层之间


    通信过程
Socket创建
  • 1.导入头文件:
#import <sys/socket.h>
#import <netinet/in.h>
#import <arpa/inet.h>
  • 2.代码
//1.创建Socket
    
    //第一个参数是 domain 协议蔟 指定IPv4
    //第二个参数是 type   socket的类型  流socket -- 数据报socket
    //第三个参数是 protocol 协议
    
    //返回值 如果创建成功,返回的事socket的描述符,失败则为-1
    int clientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
   
    //2.连接服务器
    
    //第一个参数 套接字描述符
    //第二个参数 只想数据结构sockaddr的指针,其中包括 目前端口和IP地址
    //第三个参数 参数二sockaddr的长度,可以通过sizeof(struct sockaddr)获得
    
    //返回值     成功返回0,失败返回非0,错误码GetLastError()
    
    struct sockaddr_in addr;
    addr.sin_family = AF_INET;//IPv4
    addr.sin_addr.s_addr = inet_addr("127.0.0.1");//IP
    addr.sin_port = htons(12345);//端口
    
    int result = connect(clientSocket, (const struct sockaddr *)&addr, sizeof(addr));
    
    //result == 0 ? NSLog(@"成功") : NSLog(@"失败");

//3.向服务器发送数据
    
    //成功则返回世纪传送出去的字符数,失败返回-1
    const char *msg = "Hello World";
    ssize_t sendCount = send(clientSocket, msg, strlen(msg), 0);
    NSLog(@"发送的字节数 %zd",sendCount);

 //4.接收服务器发送的数据
    
    //返回的是实际接收的字节个数
    uint8_t buffer[1024];
    ssize_t recvCount = recv(clientSocket, buffer, sizeof(buffer), 0);
    NSLog(@"接收的字节数 %zd",recvCount);
    
    //把字节数组转换成字符串
    NSData *data = [NSData dataWithBytes:buffer length:recvCount];
    NSString *recvMsg = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"接收的信息:%@",recvMsg);
    
    
    //5.关闭连接
    close(clientSocket);

相关文章

  • iOS IP地址&端口号&网络模型&Socket

    一、IP地址 二、端口号 三、网络模型 TCP/IP网络模型 传输协议TCP\UDP 四、Socket 详情可去此...

  • Java学习之网路编程

    一、概述 1、概述: 1、网络模型:OSI参考模型和TCP/IP参考模型 2、网络通信要素:IP地址,端口号、传输...

  • Socket学习笔记

    Socket 套接字 IP地址 定位网络主机 端口号 定位进程(定位程序)有效端口号范围 0 ~ 65535, 0...

  • Socket网络编程

    网络模型:OSI(开放系统互联) TCP/IP参考模型 网络通讯要素:IP地址 端口号 传输协议 TCP(传输控制...

  • Socket即时通讯原理

    1.Socket简介 用于表述IP地址,端口号,是网络的通信机制。 网络通讯底层都是基于Socket,因为它包含I...

  • uwsgi.ini

    socket uwsgi监听的socket,可以为socket文件或ip地址+端口号socket = /www/w...

  • C++ socket网络编程

    Socket介绍:socket即套接字,端口号拼接到IP地址就构成了套接字。如果IP地址是169.254.24,而...

  • 网络编程中的数据结构与API

    在网络编程中,网络层数据结构存储了网络传输的地址族,目的ip地址,目的端口号等重要信息,socket API为程序...

  • Java Socket 套接字编程

    IP 地址+端口号组成了 Socket,Socket 是网络上运行的程序之间双向通信链路的终点,是 TCP 和 U...

  • 五、Socket编程

    socket这个词可以表示很多概念: 在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的...

网友评论

      本文标题:iOS IP地址&端口号&网络模型&Socket

      本文链接:https://www.haomeiwen.com/subject/kqkqbqtx.html