C++ Socket 实例
来源:互联网 发布:卖家对淘宝差评回复 编辑:程序博客网 时间:2024/06/07 23:43
服务端:
#include "stdafx.h"#include <Winsock2.h>#include <cstdio>#include <iostream>#pragma comment(lib,"ws2_32.lib")int main(){WSADATA wsdata = {0};WSAStartup(MAKEWORD(2, 2), &wsdata); //Winsock服务的初始化,这句话一定要放在前面SOCKET socketServer = socket(AF_INET, SOCK_STREAM, 0);SOCKADDR_IN addserver;addserver.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//INADDR_ANY表示任何IPaddserver.sin_family = AF_INET;addserver.sin_port = htons(6000);auto res=bind(socketServer, (SOCKADDR*)&addserver, sizeof(SOCKADDR));listen(socketServer, 5);printf("服务器已启动:\n监听中...\n");SOCKET socketClient;SOCKADDR_IN addClient;int len = sizeof(SOCKADDR);char charsendBuf[100];//发送至客户端的字符串char charrecvBuf[100];//接受客户端返回的字符串//会阻塞进程,直到有客户端连接上来为止socketClient = accept(socketServer, (SOCKADDR*)&addClient, &len);//接收并打印客户端数据recv(socketClient, charrecvBuf, 100, 0);printf("%s\n", charrecvBuf);//关闭socketclosesocket(socketClient);WSACleanup();}
客户端:
#include "stdafx.h"#define _WINSOCK_DEPRECATED_NO_WARNINGS 1#include <Winsock2.h>#include <cstdio>#include <iostream>#pragma comment(lib,"ws2_32.lib")int main(){WSADATA wsaData;SOCKET sockClient;//客户端Socketsockaddr_in addrServer;//服务端地址WSAStartup(MAKEWORD(2, 2), &wsaData);//新建客户端socketsockClient = socket(AF_INET, SOCK_STREAM, 0);//定义要连接的服务端地址addrServer.sin_addr.s_addr = inet_addr("127.0.0.1");//目标IP(127.0.0.1是回送地址)addrServer.sin_family = AF_INET;addrServer.sin_port = htons(6000);//连接端口6000 //连接到服务端connect(sockClient, (SOCKADDR*)&addrServer, sizeof(SOCKADDR));auto err = GetLastError();std::cout << err;//发送数据char message[20] = "HelloSocket!";send(sockClient, message, strlen(message) + 1, 0);//关闭socketclosesocket(sockClient);WSACleanup(); return 0;}
服务器端编程的步骤:
1:加载套接字库,创建套接字(WSAStartup()/socket());
2:绑定套接字到一个IP地址和一个端口上(bind());
3:将套接字设置为监听模式等待连接请求(listen());
4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());
5:用返回的套接字和客户端进行通信(send()/recv());
6:返回,等待另一连接请求;
7:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。
客户端编程的步骤:
1:加载套接字库,创建套接字(WSAStartup()/socket());
2:向服务器发出连接请求(connect());
3:和服务器端进行通信(send()/recv());
4:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。
阅读全文
0 0
- [C#] Socket编程实例
- [C#] Socket编程实例
- [C#] Socket编程实例
- C#Socket多线程实例
- C++socket编程实例
- socket Listener 编程实例(C#)
- socket通讯实例 (objective-c)
- c#Socket通信入门实例
- C语言socket通信实例
- 【C/C++】Socket编程实例解析
- linux c socket 开发与编译实例
- linux c socket 开发与编译实例
- c++/MFC 极为简单的socket实例
- C建立socket连接的简单实例
- C语言实现简单的socket实例
- C语言select方式实现socket实例
- c#Socket通信(一)实例复习
- Python、/C/C++ Socket编程实例
- HDU 6092:Rikka with Subset
- SVM学习
- NYOJ 108 士兵杀敌(一)
- Java设计模式——工厂模式
- 设置postgresql的search_path
- C++ Socket 实例
- 【HDU 1024】 Max Sum Plus Plus【动态规划求最大M子段和详解-好题 】
- 简单计算器功能实现
- 2017 Multi-University Training Contest 4 1003
- Python之函数
- MYSQL常用命令(3)
- 8月8日训练
- FAFU OJ 求幂模
- UTC