Scoket

来源:互联网 发布:stringbuffer转成数组 编辑:程序博客网 时间:2024/05/23 19:19

Scoket 简单实现通信原理

直接代码 Scoket服务器端代码

#import "AppDelegate.h"#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>@interface AppDelegate (){     //标识服务器    int server_flag;     // 标识客户端    int  client_flag;    // 地址    struct sockaddr_in addr;}@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    // 服务器端代码    //1.创建标示符    // 参数1:网络类型ipv4 ipv6    // 参数2:通信协议    server_flag = socket(AF_INET, SOCK_STREAM, 0);    //2.将服务器标示符绑定到一个具体的计算机    // 端口号    addr.sin_port = htons(9007);    //    addr.sin_family = AF_INET;    // 本机地址    addr.sin_addr.s_addr = INADDR_ANY;    //接收返回值    int error = -1;    //绑定     error = bind(server_flag, (struct sockaddr *)&addr, sizeof(addr));    //3.设置最大连接数     error = listen(server_flag, 80);    //4.服务器等待    while (1) {    //5.收到客户端请求,生成一个标志位 作为客户端标识        client_flag = accept(server_flag,NULL,NULL);    //6.发送信息        send(client_flag, "Hello,Lanou!", 100, 0);    //7.接收信息        char buff[1024];        long length = 0;        //        length = recv(client_flag, buff, 1024, 0);        buff[length] = '\0';        // 打印        printf("client say:%s",buff);        //8.关闭        //close(client_flag);       }    return YES;}

直接代码 Scoket客户端代码

#import "AppDelegate.h"#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>@interface AppDelegate (){  //地址    struct sockaddr_in server;  //标示符    int client_flag;}@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   //错误信息    int  error = -1;   // 生成客户端的标示符    client_flag = socket(AF_INET, SOCK_STREAM, 0);   //设置地址    server.sin_family = AF_INET;    server.sin_port = htons(9007);    // 服务器的IP地址    server.sin_addr.s_addr = inet_addr("172.18.16.158");    // 建立连接    error = connect(client_flag, (struct sockaddr *)&server, sizeof(server));    //发送消息    send(client_flag, "韩寒", 1024, 0);    // 接收消息    char buff[1024];    long length = 0;    length = recv(client_flag, buff, 1024, 0);    buff[length] = '\0';    printf("server say:%s",buff);    //关闭   // close(client_flag);    return YES;}

这里写图片描述

0 0
原创粉丝点击