套接字学习2
来源:互联网 发布:中国商品进口额数据 编辑:程序博客网 时间:2024/05/17 08:48
/*每天记住一个套接字函数 */
SOCKET socket(int domain , int type , int protocol);
1.对于 domain 这个参数,指的是socket的协议簇有很多种类型 AF_INET,PF_INET,,等等。其实本质是一个以定义的整数! 对于TCP/IP 一般采用 AF_INET作为参数
2.对于type这个参数,也有多种类型,流式套接字(SOCK_STREAM)数据报套接字(SOCK_DGRAM)以及原始套接字(RAW SOCKET)
3.对于参数 protocol,则代表的是一种特殊的协议,不晓得具体是什么东西(以待深究)一般使用是默认为 "0"
4.对于每个socket()会返回一整型的套字的描述符,如果值为-1 说明创建失败(if(sockfd==-1)){puts("falut");return 0;}
ps: SOCKET 其实就是一个64位的整形!
SOCKET socket ( int domain; //协议簇 AF_INET int type; //套接字类型 int protocol; //默认为 0 )
对于套接字创建好了之后通常要关闭套接字,就像前面所学的WSAStartup() 函数一样要用 WSACleanup() 关闭,同理 ,套接字也要 调用函数( closesocket(sockfd) )关闭!
int closesocket(SOCKET sockfd); BTW:这个函数简单明了也容易记忆,没什么好多说的!
具体实践:
#include < iostream >#include < cstdio >#include <winsock2.h>using namespace std;#pragma comment (lib,"ws2_32.lib")int main (){int root;SOCKET sockfd;WSADATA wData;WORD wVersionRequested;wVersionRequested=MAKEWORD(2,2);root=WSAStartup(wVersionRequested,&wData);if(root!=0) {puts("创建失败");return 0;}if(LOBYTE(wData.wVersion)!=2 || HIBYTE(wData.wVersion)!=2){WSACleanup();puts("版本号错误");return 0;}//初始化之后sockfd=socket(AF_INET,SOCK_STREAM,0);if(sockfd == -1) {puts("创建套接字失败");return 0;}WSACleanup();closesocket(sockfd);return 0;}
- 套接字学习2
- 学习--原始套接字
- 套接字学习1
- 套接字学习3
- 套接字学习4
- windows套接字学习
- 原始套接字学习
- 套接字学习笔记
- 套接字学习
- 套接字学习教程之一
- 套接字学习教程之一
- 套接字 学习笔记二
- UC_SOCKET套接字学习小结
- socket 套接字学习笔记
- Winsock学习 --- 建立套接字
- 原始套接字学习总结
- C#套接字学习总结
- C# 套接字2
- GUID的比较
- 绘图性能优化专题
- MATLAB快捷键
- SOA 服务的9个特点
- do-while-0-在宏定义中的作用
- 套接字学习2
- 《大话处理器》Cache一致性协议之MESI
- c++ 复制构造函数
- Oracle 控制文件
- ubuntu下使用su切换到root用户
- alsa-lib 移植到ok6410
- 计算机指令级并行
- SQL 左外连接,右外连接,全连接,内连接 4种连接的区别
- 亲,英语四级完型和作文必备,不看你后悔死了