Socket
来源:互联网 发布:wow数据库黑翼之巢 编辑:程序博客网 时间:2024/05/20 18:53
Socket技术
- 基于网络通信
- 和http协议相比(HTTP只定义方法,无实现过程)
- 具体实现过程
- 长连接,HTTP段连接
- HTTP协议是用来做超文本传输
Socket什么都可以传 (所以socket更加底层)
iOS (socket实现的框架)
- GCDAsyncSocket <= GFNetwork <= sys/socket.h
NSNetService
socket技术
- tcp/ip和udp
- tcp/ip 传输控制协议
- udp 广播类型协议
- tcp/ip 会更加安全,三次握手的过程是在传输数据
- udp 的速度更快,不可靠性大,传输效率慢(经常出错)
客户端
{ //计算机地址 struct sockaddr_in server;}- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { int error = -1; // int client_flag = socket(AF_INET, SOCK_STREAM, 0); server.sin_port = htons(10000); server.sin_family = AF_INET; server.sin_addr.s_addr = inet_addr("172.18.16.50"); error = connect(client_flag, (struct sockaddr *)&server, sizeof(server)); send(client_flag, "%¥#%&*&#¥%……&*(*&……%¥", 40, -1); //字符串的大小为40 char buff[1024]; int length = recv(client_flag, buff, (long)1024, -1); buff[length] = '\0'; printf("%s",buff); close(client_flag); return YES;}
服务端
{ //服务端的标识 int server_flag; //客户端的标识 int client_flag; //计算机地址 struct sockaddr_in addr;}- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { int error = -1;//用来判定是否绑定成功 //服务端 //1、创建服务端的标识符,是int型的(用来判断是客户还是服务) server_flag = socket(AF_INET, SOCK_STREAM, 0);//网络类型(ipv4),协议 //2、将服务端的标识符,绑定到一个具体的计算机(ip,port共同制定一个具体的计算机)里 addr.sin_port = htons(2345); addr.sin_family = AF_INET; addr.sin_addr.s_addr = INADDR_ANY; error = bind(server_flag, (struct sockaddr *)&addr, sizeof(addr)); //3、服务端要做好能同时处理多少个链接的事情 error = listen(server_flag, 100); //哪个服务端,多少个 //4、服务端要做好等待客户端链接请求的准备 while (1) { //5、将收到的客户端链接请求生成一个标志位,作为某个客户端的标识(一个标志位对应一个客户端) client_flag = accept(server_flag, NULL, NULL); //6、通过客户端标识位进行消息传输 char buff[1024]; int length = recv(client_flag, buff, (long)1024, -1); buff[length] = '\0'; printf("client say:%s",buff); //发送消息 send(client_flag, "hello", 80, -1); //7、关闭取消链接的客户端标识位 close(client_flag); } return YES;}
0 0
- socket
- socket
- Socket
- Socket
- Socket
- Socket
- Socket
- Socket
- socket
- Socket
- Socket
- Socket
- Socket
- socket
- socket
- socket
- socket
- socket
- 黑马程序员--Java编程之常见对象
- Facebook开源《AsyncDisplayKit介绍》翻译
- [数据结构]双机调度问题
- vi编辑器技巧总结(更新中)
- Fragment的基本使用方法与通信
- Socket
- android设备终端与蓝牙模块(HC-06)的通讯编程思路
- iOS9模拟器无法进行HTTP网络请求的解决方案
- android - Notifications
- Android进阶之Service远程通信AIDL
- ros由indigo版本升级至jade版本的烦恼
- iOS集成支付宝
- #学习笔记#(13)仿 kugou-logo-phptoshop
- 听说”双11”是这么解决线上bug的