vs2010下网络编程创建套接字连接例子

在VS2019 C++ 中实现Socket通信,添加ws2_32.lib静态库 1、vs2019下添加ws2_32.lib 右键项目—>属性—>链接器—>输入—>附加依赖项,点击编辑,添加ws2_32.lib库文件 或者是在cpp源文件中用 #pragma comment(lib,“ws2_32.lib”)来代替。 服务器端源程序 #include<iostream> #include<stdio.h> #include<WinSock2.h> #include<string.h> using namespa 阅读详情

建立win32控制台项目,然后新建cpp文件

server:

#include "WinSock2.h" 
 #include "stdio.h" 
 #pragma comment(lib,"Ws2_32.lib")//导入库,lib表示库," "表示库的名称 
 
 int main(int argc, CHAR* argv[]) 
 { 
      //加载WinSock库 
       WORD wVersionRequested; 
     WSADATA wsaData; 
     int err; 
  
     wVersionRequested = MAKEWORD( 2, 2 ); 
  
      err = WSAStartup( wVersionRequested, &wsaData ); 
     if ( err != 0 ) 
         return 0; 
      if ( LOBYTE( wsaData.wVersion ) != 2 || 
           HIBYTE( wsaData.wVersion ) != 2 ) { 
              WSACleanup( ); 
               return 0;  
      } 
  
       SOCKET lSocket,aSocket; 
     SOCKADDR_IN AddrSer; 
     AddrSer.sin_family=AF_INET; 
      AddrSer.sin_port=htons(5000); 
      AddrSer.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//INADDR_ANY表示接受任何机器的请求 
      lSocket=socket(AF_INET,SOCK_STREAM,0); 
     //绑定服务器地址 
       if(::bind(lSocket,(SOCKADDR*)&AddrSer,sizeof(SOCKADDR))==SOCKET_ERROR) 
     { 
            printf("绑定套接字失败"); 
            return 0; 
        } 
     ::listen(lSocket,1);//开始监听客户端的连接请求 
     SOCKADDR_IN AddrCli;//客户端的地址信息 
     int len=sizeof(SOCKADDR); 
      aSocket=::accept(lSocket,(SOCKADDR*)&AddrCli,&len);//连接成功时,产生新的socket用来与客户端通信 
     char recBuf[1024]; 
     char senBuf[1024]; 
      while (1) 
       { 
            //TCP下为recv与send,UDP下为recefrom与sendto 
             ::recv(aSocket,recBuf,1024,0); 
            if (recBuf[0]=='#') 
             { 
                  printf("客户端请求断开\n"); 
                printf("正在断开..."); 
                 Sleep(3000); 
           break; 
                   } 
           printf("客户端:%s\n",recBuf); 
            printf("服务器:"); 
            gets_s(senBuf);//warming:gets()is unsafe 
           if (senBuf[0]=='#') 
            { 
                ::send(aSocket,senBuf,1024,0); 
                  printf("正在请求断开...\n"); 
                 Sleep(3000); 
                 return 0; 
             } 
            //printf("服务器:%s\n",senBuf); 
            ::send(aSocket,senBuf,1024,0); 
            memset(recBuf,' ',1024); 
           memset(senBuf,' ',1024); 
       } 
      ::closesocket(aSocket); 
      ::closesocket(lSocket); 
     ::WSACleanup(); 
      return 0; 
  } 
编辑运行

再建立客户端项目 client,新建文件client.cpp

代码为:


#include "WinSock2.h"
#include "stdio.h"
#pragma comment(lib,"Ws2_32.lib")

 int main(int argc, CHAR* argv[])
{
 WORD wVersionRequested;
 WSADATA wsaData;
 int err;

 wVersionRequested = MAKEWORD( 2, 2 );

 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 )
  return 0;
 if ( LOBYTE( wsaData.wVersion ) != 2 ||
  HIBYTE( wsaData.wVersion ) != 2 ) {
   WSACleanup( );
   return 0;
 }

 SOCKET cSocket;
 cSocket=socket(AF_INET,SOCK_STREAM,0);
 SOCKADDR_IN addrSer;
 addrSer.sin_family=AF_INET;
 addrSer.sin_port=htons(5000);
 addrSer.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
 if(::connect(cSocket,(SOCKADDR*)&addrSer,sizeof(SOCKADDR))==SOCKET_ERROR)
 {
  printf("连接服务器失败");
  return 0;
 }
 char senBuf[1024];
 char recBuf[1024];
 while(1)
 { 
  printf("客户端:");
  gets_s(senBuf);
  if (senBuf[0]=='#')
  {
   ::send(cSocket,senBuf,1024,0);
   printf("正在请求断开...\n");
   Sleep(3000);
   return 0;
  }
  //printf("客户端:%s\n",senBuf);
  ::send(cSocket,senBuf,1024,0);
  ::recv(cSocket,recBuf,1024,0);
  if(recBuf[0]=='#')
  {
   printf("与服务器断开");
   printf("正在断开...");
   Sleep(3000);
   break;
  }
  printf("服务器:%s\n",recBuf);
  memset(recBuf,' ',1024);
  memset(senBuf,' ',1024);
 }
 ::closesocket(cSocket);
 ::WSACleanup();
 return 0;
}

 

编辑运行。

然后呢,先启动server.exe,再启动client.exe 好了 可以简单地会话了,自己给自己聊天吧

c++/MFC 极为简单的socket实例 本实例,也是我在网上找到的。感觉很基础,新手很适合。所以,就加以备注,给大家分享下。我也是一新手,学习mfc也就2个星期,本来一直弄php的。 简单来说下服务端的socket工作流程。 本实例代码下载,vs2010版本,打开就可以运行:http://download.youkuaiyun.com/detail/open520yin/4788263 最简单的mfc socket实例,适合新手。里面有服务端 阅读详情

相关推荐

VS2010网络编程

客户端程序 #include #include "WinSock2.h" #pragma comment(lib,"ws2_32.lib")   #define IP_STR_ADDR   "127.0.0.1" #define IP_PROT    6000   //服务端端口号 #define LISTEN_COUNT_MAX 20    //服务端监听sock最大总数

xiaoshidiaodejiyi的博客 1151

Visual Studio 2017网络编程配置

新建项目 新建一个echo_server项目 编程 #include <iostream> #include <WinSock2.h> using namespace std; int main(int argc, char* argv[]) { WSADATA wsaData; SOCKET servSock; const int BUF_SIZE = 30; char message[BUF_SIZE]; int strLen, clntAdrSz; SOCKA

m0_67400972的博客 638

Windows网络编程用VS2010调试时出现的问题及解决方案

我们在学习Windows网络编程的时候,老师要求在Visual Studio 2010里 创建一个聊天项目,小组分工编程时,我遇到的是以下的问题: 问题1::TalkClient.obj : error LNK2019: 无法解析的外部符号 "void __cdecl defProc(void)" (?defProc@@YAXXZ),该符号在函数 "void __cdecl procMen

Echo_Ana的博客 1410

Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码

Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码 Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码 环境:Windows10 工具:visual studio 2019 包含头文件:#include <WinSock2.h> 附加:(显示引用dll)#pragma comment...

honlion的博客 2万+

VS2010MFC之网络编程——添加链接器

编译报错:  >client.obj : error LNK2019: 无法解析的外部符号 __imp__recv@16,该符号在函数 _main 中被引用1>client.obj : error LNK2019: 无法解析的外部符号 __imp__closesocket@4,该符号在函数 _main 中被引用1>client.obj : error LNK2019: 无法

huijie4728的专栏 1860

VS2010 TCP协议client和server简单通信例程

TCP工程可以在VS2010编译通过,亲测是可以使用的。机器环境是windows10 x64。不清楚的可以参考:https://blog.youkuaiyun.com/armwind/article/details/87564919

APIsocket,VS2010,windows非阻塞模式异步套接字编程(看孙鑫视频有感)

作者在windows+vs2010写的,UDP,异步套接字。 windows socket有两种模式阻塞式和非阻塞式。 阻塞模式下,windows socket 会一直等待下去,线程会一直阻塞在这里。所以可以考虑使用多线程,创建线程,在线程中死循环,不断recvfrom(),然后PostMessage(),发送消息到消息队列,消息在主线程处理。(参考孙鑫老师Lesson15的Chat程序)

gaoyang23nj的专栏 1691

基于VS2010的UDP通信程序

UDP通信测试程序,底层sock协议是调用的是CAsyncSocket类,代码内有注释,内有使用说明

VS2010下的TCP客户端MFC程序:开启网络编程学习之旅

VS2010下的TCP客户端MFC程序:开启网络编程学习之旅 去发现同类优质开源项目:https://gitcode.com/ 在当今网络技术飞速发展的背景下,掌握网络编程技能对于软件开发者而言至关重要。VS2010下的TCP客户端MFC程序,正是为广大初学者量身打造的学习工具。下面,我们将详细介绍这个项目的核心功能、技术分析、应用场景以及项目特点。 项目介绍 VS2010下的TCP客户端MFC程...

gitblog_06777的博客 1027

VS2017实现Tcp socket通信(C++)

包括服务器客户端程序,基于Visual Studio2017实现,编译测试过了,用到的朋友记得关闭SDL检查

TCPIP服务器客户端测试VS2010含源码

简单的VS2010使用winsocket建立的客户端与服务器程序,含源码,可根据需求修改服务器IP与端口号,并可定时收发数据。首先,运行服务器程序,界面上输入服务器IP与端口号,并创建服务器;其次,运行客户端程序,界面中输入服务器IP与端口号,建立客户端;如连接成功,两者状态提示框中都有提示。之后,点击各自的接收数据与发送数据,可实现收据的定时收发,设定时间是1S。

最全VS2010初级教程学习手册

目录 《Visual C++ 2010入门教程》系列二:安装、配置和首次使用VS2010 1 写在前面        第一章 关于Visual Studio、VC和C++的那些事 1 第二章 安装、配置和首次使用VS2010 2 安装 2 配置 10 HelloWorld. 18 VS2010正式到手,说说几点试用体会 29 VS2010 中使用main函数作为C++的入口函数

小林哥专栏 1万+

tcp_socket VS2010实现_tcp_socketVS2010_vs2010下使用tcp_

TCP_SOCKET VS2010实现最简单的通信,在两台电脑上实现,两台电脑直接通过网线连接即可。

VS2010环境下 用MySQL Connector C 连接 MySql数据库

1、vs2010中利用Connect C连接数据,需要进行包含和库目录设置 1)项目-属性-配置属性-VC++目录-包含目录 中加入mysql Connect C文件的include目录 C:\Program Files\MySQL\MySQL Connector.C 6.1\include 2)项目-属性-配置属性-VC++目录-库目录 中加入mysql Connect C文件

worrydog的专栏 1026

Vision-Language Navigation - Windows环境下编译安装Matterport3D Simulator仿真器(三)

目录1 编译 Matterport3D Simulator 源码1.1 源码下载1.2 编译 1 编译 Matterport3D Simulator 源码   在 Windows 下编译 Matterport3D Simulator 稍微有些不方便,需要对 CMakeLists.txt 进行一些修改,如果有更好的方法欢迎大家评论。 1.1 源码下载   还是直接在 Github 上搜索 Matterport3D Simulator 的 repo,下载源码。如果用 zip 方式,那么直接在下即可。如果使用

weixin_44110393的博客 4845

告别手册!S32K3XX的eMIOS实战:从GPT定时到PWM输出,一个通道搞定电机控制

本文深入探讨了NXP S32K3XX系列MCU的eMIOS模块在电机控制中的高效应用。通过单通道实现PWM生成、输入捕获和定时中断三大功能,展示了如何简化BLDC电机控制硬件设计。文章结合RTD库与寄存器级编程,提供动态模式切换和性能优化方案,显著降低CPU负载。

weixin_42522374的博客 147

JSON学习系列之四:VS2010开发编译JSONCPP

JSON学习系列之四:C++使用JsonCPP解析JSON数据

jyl_sh的专栏 2074

实战指南:轻松破解DataDome滑块验证码的关键步骤

本文详细介绍了破解DataDome滑块验证码的关键步骤,包括理解其工作原理、准备工作、参数获取与配置、完整破解流程及API调用。通过使用Capsolver服务和模拟真实用户行为,帮助开发者有效绕过这一反机器人机制,同时强调了法律与道德考量。

weixin_30415113的博客 481

[网络编程]VS2010+OpenSSL安装与初步了解

OpenSSL简介 功能作用:SSL(Secure Socket Layer)是netscape公司提出的主要用于web的安全通信标准,分为2.0版和3.0版。TLS(Transport Layer Security)是IETF的TLS 工作组在SSL3.0基础之上提出的安全通信标准,目前版本是1.0,即RFC2246。SSL/TLS提供的安全机制可以保证应用层数据在互联网络传输不被监听、伪

超越 3149

5分钟搞懂Paris公式:如何用裂纹扩展速率预测零件寿命(附Python代码示例)

本文详细介绍了Paris公式在裂纹扩展速率预测零件寿命中的应用,通过Python代码示例展示了从理论到实践的完整流程。文章涵盖了Paris公式的工程本质、寿命预测计算流程、几何修正因子选择以及实际案例演示,帮助工程师快速掌握这一关键技术。

weixin_29309475的博客 428

FREERTOS+LWIP+IAP实现TCP、HTTP、网页访问并固件升级、更新配置 (三)lwip实现httpd服务并在web访问

在前两篇文章中配置freeRTOS和,并实现了TCP、UDP的通信协议,现在终于轮到重头戏lwip的httpd服务,LWIP官方例程中是有很多自带的网页的,但是远远不够满足实际项目的使用需求,因此我也是踩了很多坑,从前端网页制作,到网络通信的实现,到后端数据处理,从头开始学起,也是学习到了很多没接触过的东西,本章将搭建LWIP的HTTP服务使得浏览器可以访问WEB。

wangjiaheng0716的博客 2965

vs2010打开数据连接时程序崩溃

昨天装了个project,为了

zhuameng.com的博客 684

[QMT和ptrade量化交易小白入门]-120、卖出深度虚值期权的三重过滤策略

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 283

VC++6.0与VS2010的区别

区别1:字符串的表达 void CMy123Dlg::OnBnClickedButton1() { // MessageBox("你好");//以前VC6.0写法,现在用不了.老版本用的多字节字符集 // MessageBox(L"你好");//L 是 unicode字符集,可移植性不好 // MessageBox(_T("你好"));//这3种方法一样 // MessageBox(T

sky_lily_1985的专栏 5345

直流无刷电机FOC控制算法 理论到实践 —— 实践

关于直流无刷电机FOC控制算法的理论章节,本人已经在前两章进行过详细说明,大家可以自行进行阅读,请务必了解过理论之后再来学习如何具体进行实现。直流无刷电机FOC控制算法 理论到实践 —— 理论(一)直流无刷电机FOC控制算法 理论到实践 —— 理论(二)本章节主要讨论采用MCU微控制器如何具体实现直流无刷电机的FOC控制。

爱出名的狗腿子 1万+

药物对接仿真软件:HADDOCK_(16).实践项目:抗体-抗原对接案例

定义分子结构文件。

kkchenjj的博客 580
上一篇: linux建立简单服务器(TCP)
下一篇: C++ STL学习笔记1--vector
poorskill
博客等级 码龄14年 11粉丝 38原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值