SOCKET笔记
来源:互联网 发布:知乎值得读的书 编辑:程序博客网 时间:2024/06/01 08:40
WIN下需要包含的头文件和预处理
#pragma comment(lib,"ws2_32.lib")
在开始套接字前要先启动WSAStartup(MAKEWORD(1, 1),&Data),第一个参数指明程序请求使用的Socket版本,其中高位字节指明副版本、低位字节指明主版本;操作系统利用第二个参数返回请求的Socket的版本信息。创建套接字的协议:socketserver = socket(AF_INET, SOCK_STREAM, NULL);返回一个SOCKET描述符。
SOCKADDR_IN structserver;、、服务端的结构
SOCKADDR_IN structclient;//客户端的结构
structserver.sin_family = AF_INET;
structserver.sin_port = htons(6000);
structserver.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
然后绑定bind(socketserver, (SOCKADDR*)&structserver, sizeof(SOCKADDR));
监听listen(socketserver, 5);
然后socketclient = accept(socketserver , (SOCKADDR *)&structclient, &sizesockadd);阻塞等待服务端。函数内是等待客户端的信息
memset(buffer, 0, maxsize);
recstatus = recv(socketclient, buffer, maxsize, 0);返回0表示链接中断,-1则是出错。
recstatus =send(newSocket, buf, strlen(buf) + 1, 0);
closesocket(socketclient );
客户端同样需要先WSAStartup(MAKEWORD(1, 1),&Data),创建套接字,socket(AF_INET, SOCK_STREAM, 0); 和创建一个SOCKADDR_INdestSockAddr结构体内信息与服务端的一样,然后
connect(destSocket, (LPSOCKADDR)&destSockAddr, sizeof(destSockAddr));
连上后numsnt=send(destSocket, toSendtxt, strlen(toSendtxt) + 1, NO_FLAGS_SET); 发送信息,而LINUX下相对于WIN则不需要WSAStartup的这些步骤。
最后要WSACleanup();
PYTHON的网络socket
SimpleHTTPServer: 使用静态文件来回应请求
在Python中,我们可以使用SimpleHTTPServer包和CGIHTTPServer包来规定针对不同请求的操作。其中,SimpleHTTPServer可以用于处理GET方法和HEAD方法的请求。它读取request中的URL地址,找到对应的静态文件,分析文件类型,用HTTP协议将文件发送给客户.CGIHTTPServer:使用静态文件或者CGI来回应请求
- Socket笔记
- socket 笔记
- socket 笔记
- Socket笔记
- socket笔记
- socket笔记
- socket笔记
- socket笔记
- Socket笔记
- socket笔记
- SOCKET笔记
- socket笔记
- socket笔记
- Socket笔记
- socket笔记
- MFC socket文档笔记 --socket
- socket学习笔记
- socket KeepAlive 使用笔记
- 【Day8】php源码加密的办法
- mysql 插入中文 ERROR 1366 (HY000): Incorrect string value: '\xE7\x8E\x9E\x97' for column
- 计算机网络-IP地址
- Java中的事务——JDBC事务和JTA事务
- C# SQL Server 操作笔记
- SOCKET笔记
- 顺序存储二叉树
- Redis提供的五种数据结构
- 【Qzone】打不死的小强 杀不死的服务 开机自启动服务
- leetcode:85. Maximal Rectangle
- Swift类与结构、存储属性、计算属性、函数与方法、附属脚本等
- Ubuntu下测试使用Nginx+uWsgi+Django
- Xcode插件管理器
- JAVA 强制类型转换