1、关于字节排序 网际协议采用大端字节序,来传输多字节整数。 系统提供了转换的宏定义,如果主机与网际协议相同,则宏定义为空。
2、客户端 socket -> connect(阻塞,三次握手)-> rcv
3、服务器端 socket -> bind -> listen -> accept(阻塞,三次握手)-> send4、函数介绍
a..socket
1)函数原型 int socket(int family, int type, int protocol)
2)参数: family: 协议族AF_INET,IPv4协议 ... type : type 套接字类型SOCK_STREAM 字节流套接字 protocol: IPPROCO_TCP IPPROCO_UDP IPPROCO_SCTP
3)返回值 成功:返回套接字符 错误:返回INVALID_SOCKET(-1)
4)示例
- #include
- #include
- #include
- int main()
- {
- int socketfd;
- struct sockaddr_in servaddr;
- if((socketfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- {
- return -1;
- }
- }
- #include
- #include
- #include
- #include
- #include
- int main()
- {
- int socketfd;
- struct sockaddr_in servaddr;
- if((socketfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- {
- printf("socket error\n");
- return -1;
- }
- bzero(&servaddr, sizeof(servaddr));
- servaddr.sin_addr.s_addr = inet_addr("192.168.0.218");
- servaddr.sin_family = AF_INET;
- servaddr.sin_port = htons(55000);
- if(connect(socketfd, (struct sockaddr*) &servaddr, sizeof(servaddr)) 0:描述符就绪的总位数
错误:返回INVALID_SOCKET(-1)
4)包含头文件: include include
5)示例
- /* 实现功能:通过select处理多个socket
- * 监听一个端口,监听到有链接时,添加到select的w.
- */
- #include "select.h"
- #include
- #include
- #include
- #include
- #include
- #include
- typedef struct _CLIENT{
- int fd;
- struct sockaddr_in addr; /* client's address information */
- } CLIENT;
- #define MYPORT 59000
- //最多处理的connect
- #define BACKLOG 5
- //最多处理的connect
- CLIENT client[BACKLOG];
- //当前的连接数
- int currentClient = 0;
- //数据接受 buf
- #define REVLEN 10
- char recvBuf[REVLEN];
- //显示当前的connection
- void showClient();
- int main()
- {
- int i, ret, sinSize;
- int recvLen = 0;
- fd_set readfds, writefds;
- int sockListen, sockSvr, sockMax;
- struct timeval timeout;
- struct sockaddr_in server_addr;
- struct sockaddr_in client_addr;
- for(i=0; i
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?
立即登录/注册


微信扫码登录