【源码学习】之socket篇解决思路
【源码学习】之socket篇
该源码主要用于展示socket的使用,分别创建了2个控制台程序Server和Client
代码量很少,只有几十行,适用于新手学习了解用。
代码主要展示了如下内容:
- 套接字的初始化
- 绑定
- 监听
- 连接
- 发送
- 接收
- 关闭套接字
- 清理套接字
代码下载地址:http://download.****.net/detail/ccvoid_void/8526789
C/C++/MFC/VC技术交流学习群【197778914】欢迎您的加入!
服务器部分:
客户端部分:
------解决思路----------------------
很基础啊 适合初学者
该源码主要用于展示socket的使用,分别创建了2个控制台程序Server和Client
代码量很少,只有几十行,适用于新手学习了解用。
代码主要展示了如下内容:
- 套接字的初始化
- 绑定
- 监听
- 连接
- 发送
- 接收
- 关闭套接字
- 清理套接字
代码下载地址:http://download.****.net/detail/ccvoid_void/8526789
C/C++/MFC/VC技术交流学习群【197778914】欢迎您的加入!
服务器部分:
#include <Winsock2.h>
#pragma comment(lib, "Ws2_32.lib")
#include <iostream>
using namespace std;
void main()
{
//初始化套接字
WSADATA wsaData;
WORD wVersion = MAKEWORD(1, 1);
::WSAStartup(wVersion, &wsaData);
SOCKET socketSrv = ::socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = ::htonl(INADDR_ANY);
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = ::htons(6000);
//绑定
::bind(socketSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));
//监听
::listen(socketSrv, 3);
cout<<"初始完毕!开始接收数据!\r\nC/C++/VC/MFC交流学习群【197778914】欢迎你的加入!"<<endl;
while(1)
{
char sRecvBuf[256] = "";
SOCKADDR_IN addrClient;
int nLen = sizeof(SOCKADDR);
SOCKET socketClient = ::accept(socketSrv, (SOCKADDR*)&addrClient, &nLen);
::recv(socketClient, sRecvBuf, sizeof(sRecvBuf), 0);
cout<<"接收到的内容:"<<sRecvBuf<<endl;
::closesocket(socketClient);
}//while(1)
::closesocket(socketSrv);
//清理套接字
::WSACleanup();
system("pause");
}
客户端部分:
#include <Winsock2.h>
#pragma comment(lib, "Ws2_32.lib")
#include <iostream>
using namespace std;
void main()
{
//初始化套接字
WSADATA wsaData;
WORD wVersion = MAKEWORD(1, 1);
::WSAStartup(wVersion, &wsaData);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = ::inet_addr("127.0.0.1");
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = ::htons(6000);
SOCKET socketClient = ::socket(AF_INET, SOCK_STREAM, 0);
//连接
::connect(socketClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));
cout<<"初始完毕!准备发送数据!\r\nC/C++/VC/MFC交流学习群【197778914】欢迎你的加入!"<<endl;
char sSend[128] = "Hello World!";
::send(socketClient, sSend, strlen(sSend), 0);
::closesocket(socketClient);
//清理套接字
::WSACleanup();
system("pause");
}
------解决思路----------------------
很基础啊 适合初学者