CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 漏洞列表
  3. 正文

socket编程实例-2020/8/20

2020年8月20日 340点热度 0人点赞 0条评论

在windows操作系统中进行socket编程,服务器和客户端要各司其职,简单来说,

服务器端需要做的工作有:

1.创建套接字(socket函数)

2.锁定IP地址和端口(bind函数)

3.监听进入的链接(listen函数)

4.接受连接(accept函数)

5.收发数据(send/recv函数)

6.关闭连接(closesocket函数)

客户端需要的做的工作有:

1.创建套接字(socket函数)

2.连接到服务器端(connect函数)

3.收发数据(send/recv函数)

4.关闭连接(closesocket函数)

以下是一个简单的例子,代码是从网上找来的。但是感觉有些地方写的不够好,就稍微修改了一些地方,也勉强算原创吧。代码如下:

//Server.cpp
#include
#include

using namespace std;

#pragma comment(lib,"ws2_32.lib")

#define PORT 4000
//#define IP_ADDRESS "127.0.0.1"

DWORD WINAPI ClientThread(LPVOID lpParameter)
{
SOCKET CientSocket = (SOCKET)lpParameter;
int Ret = 0;
char RecvBuffer[MAX_PATH];

while ( true )
{
memset(RecvBuffer, 0x00, sizeof(RecvBuffer));
Ret = recv(CientSocket, RecvBuffer, MAX_PATH, 0);
if ( Ret == 0 || Ret == SOCKET_ERROR )
{
cout<<"客户端退出!"<
#include

using namespace std;

#pragma comment(lib,"ws2_32.lib")

#define PORT 4000
//#define IP_ADDRESS "127.0.0.1"

int main(int argc, char* argv[])
{
WSADATA Ws;
SOCKET CientSocket;
struct sockaddr_in ServerAddr;
int Ret = 0;
int AddrLen = 0;
HANDLE hThread = NULL;
char SendBuffer[MAX_PATH];

// quick argument check
if(argc != 2)
{
fprintf(stderr, "usage: %s \n", argv[0]);
ExitProcess(1);
}

//Init Windows Socket
if ( WSAStartup(MAKEWORD(2,2), &Ws) != 0 )
{
cout<<"Init Windows Socket Failed::"<\n", argv[0]);

ExitProcess(1);

}

假设客户端的可执行程序为clientSocket.exe,那么运行的时候应该遵循这样的格式:

clientSocket IP

这里的IP指的是服务器端的IP地址。

我使用VC6.0编译器编译了源代码,放在附件里面了。欢迎大家下载。

参考资料:http://www.cppblog.com/bujiwu/archive/2009/01/11/71707.aspx0daybank

标签: 暂无
最后更新:2020年8月20日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me