iOS socket 套接字编程

来源:互联网 发布:c语言获取随机数 编辑:程序博客网 时间:2024/05/19 09:17

服务端:

#import "ViewController.h"#import <sys/socket.h>#import <netdb.h>@interface ViewController ()@end#define SOCKET int#define INVALID_SOCKET -1#define SOCKET_ERROR -1@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.        SOCKET Socket_Client;        //创建 socket    Socket_Client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);    if (Socket_Client == INVALID_SOCKET)    {        printf("socket error");        return;    }        struct sockaddr_in sockaddr;        //初始化地址信息    sockaddr.sin_family = AF_INET;    sockaddr.sin_port = htons(8000); //8000端口    sockaddr.sin_addr.s_addr = INADDR_ANY; //表示所有可用的地址        //绑定 socket    if (bind(Socket_Client,(struct sockaddr*)&sockaddr,sizeof(sockaddr)) == SOCKET_ERROR)    {        printf("bind error");        return;    }        //监听    if (listen(Socket_Client,5) == SOCKET_ERROR)    {        printf("listen error");        return;    }        SOCKET Socket_Server; //客户端    struct sockaddr_in remoteAddr; //服务端地址    int Addrlen = sizeof(remoteAddr);    char revData[255];        while (true)    {        //接收连接        Socket_Server = accept(Socket_Client,(struct sockaddr*)&remoteAddr,&Addrlen);        if (Socket_Client == INVALID_SOCKET)        {            printf("accept error");            continue;        }        printf("连接成功");                //接收数据        int ret = recv(Socket_Server,revData,sizeof(revData),0);        if (ret > 0)        {            printf("recv: %s",revData);        }            }        close(Socket_Server);  //关闭socket}

客户端:

#import "ViewController.h"#import <sys/socket.h>#import <netdb.h>#import <arpa/inet.h>#define SOCKET int#define INVALID_SOCKET -1@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        //创建Socket    SOCKET Socket_Server;    Socket_Server = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);    if (Socket_Server == INVALID_SOCKET)    {        printf("Socket error");        return;    }        //初始化地址    struct sockaddr_in ClientAddr;    ClientAddr.sin_family = AF_INET;    ClientAddr.sin_port = htons(8000);    ClientAddr.sin_addr.s_addr = inet_addr("192.168.4.107");        //循环连接    while (true)    {        //连接        if (connect(Socket_Server,(struct sockaddr*)&ClientAddr,sizeof(ClientAddr)) < 0)        {            printf("connect error\n");            sleep(3);            continue;        }        printf("连接成功");        break;    }        //发送    if (send(Socket_Server,"上线了",sizeof("上线了"),0) < 0)    {        printf("send error");        return;    }        //关闭Socket    close(Socket_Server);        // Do any additional setup after loading the view, typically from a nib.}


原创粉丝点击