背景

在我们使用Dev C++进行C语言编程时,如果我们引入的库是C语言标准库,那我们是不要在编译器选项中进行额外的设置的,但是如果我们使用的是一些不是C语言标准库,那我们可能就需要在编译器选择中进行设置。

使用Dev C++进行Windows socket网络编程时,我们需要额外导入。

Windows 下的 socket 程序和 Linux 思路相同,但细节有所差别:

  1. Windows 下的 socket 程序依赖 Winsock.dll 或 ws2_32.dll,必须提前加载。

  2. Linux 使用“文件描述符”的概念,而 Windows 使用“文件句柄”的概念;Linux 不区分 socket 文件和普通文件,而 Windows 区分;Linux 下 socket() 函数的返回值为 int 类型,而 Windows 下为 SOCKET 类型,也就是句柄。

使用下面的代码进行测试:

#include <stdio.h>
#include <WinSock2.h>
#pragma comment(lib, "ws2_32.lib")  //加载 ws2_32.dll
#define BUF_SIZE 100
int main(){//初始化DLLWSADATA wsaData;WSAStartup(MAKEWORD(2, 2), &wsaData);//创建套接字SOCKET sock = socket(PF_INET, SOCK_DGRAM, 0);//服务器地址信息struct sockaddr_in servAddr;memset(&servAddr, 0, sizeof(servAddr));  //每个字节都用0填充servAddr.sin_family = PF_INET;servAddr.sin_addr.s_addr = inet_addr("127.0.0.1");servAddr.sin_port = htons(1234);//不断获取用户输入并发送给服务器,然后接受服务器数据struct sockaddr fromAddr;int addrLen = sizeof(fromAddr);while(1){char buffer[BUF_SIZE] = {0};printf("Input a string: ");gets(buffer);sendto(sock, buffer, strlen(buffer), 0, (struct sockaddr*)&servAddr, sizeof(servAddr));int strLen = recvfrom(sock, buffer, BUF_SIZE, 0, &fromAddr, &addrLen);buffer[strLen] = 0;printf("Message form server: %s\n", buffer);}closesocket(sock);WSACleanup();return 0;
}

如果不进行编译器设置,则会报错,报错提示如下所示:

我们需要做如下设置:

在工具-编译器选项中,在连接器命令中加入一下命令:-lws2_32

点击确定后,编译运行,显示可以正常编译运行。

使用Dev C++进行Windows socket网络编程,需链接lws2_32库相关推荐

  1. Windows Socket 网络编程(二)

    来源: http://www.vckbase.com/document/viewdoc/?id=484 Windows Socket 网络编程(二) -- 套接字编程原理 作者: 冰点工作室 小鹰 [ ...

  2. Windows Socket 网络编程(一)

    **来源:http://www.vckbase.com/document/viewdoc/?id=472 Windows Socket 网络编程(一)** -- TCP/IP体系结构.特点及相关术语 ...

  3. Linux C++/Java/Web/OC Socket网络编程

    一,Linux C++ Socket网络编程 1.什么是TCP/IP.UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制 ...

  4. Socket网络编程(2)--服务端实现

    中秋了,首先祝大家中秋快乐,闲着无事在家整一个socket的聊天程序,有点仿QQ界面,就是瞎折腾,不知道最后是不是能将所有功能实现. 如果你对socket不了解,请看这篇文章:http://www.c ...

  5. 【网络编程】之四、socket网络编程例解

    前面说了那么多,现在我们给出4个代码+详解,基于win32平台的socket编程.使用TCP 和 UDP 两种协议. OK,先来看一下TCP服务器和客户端: [cpp] view plaincopy ...

  6. 多实例多进程网络编程PHP,php socket网络编程基础知识(四):多进程

    标签:status   传递   windows   返回   修改   队列   _for   响应   关联 说明 php在web编程时是不需要考虑多进程的,但整个php流程是涉及到多进程的,只不 ...

  7. Socket网络编程(TCP/IP/端口/类)和实例

    原文:C# Socket网络编程精华篇 转自:微冷的雨 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次模型 当然这里我们只讨论重要的四层 01,应用层(Ap ...

  8. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver

    今日内容:socket网络编程     1.OSI七层协议     2.基于tcp协议的套接字通信     3.模拟ssh远程执行命令     4.tcp的粘包问题及解决方案     5.基于udp协 ...

  9. socket网络编程 java_Java Web 基础(一) 基于TCP的Socket网络编程

    一.Socket简单介绍 Socket通信作为Java网络通讯的基础内容,集中了异常.I/O流模式等众多知识点.学习Socket通信,既能够了解真正的网络通讯原理,也能够增强对I/O流模式的理解. 1 ...

最新文章

  1. go 类型 value 不支持索引_10分钟掌握PostgreSQL 5种索引的应用场景
  2. 配置虚拟主机 和 打war包
  3. Windows、Linux和MAC的CR, LF, CR/LF换行符
  4. 谐波分析显著性检验matlab,关于谐波检测方法的MATLAB仿真及综合性能分析.pdf
  5. IAR 下根据官方库建立 STM32的工程
  6. 【K210】【MaixPy】三、Maix Dock入门之LCD的使用(播放BadApple)
  7. SCWS分词扩展在UNIX/LINUX下的安装方法
  8. 【单目标优化求解】基于matlab水循环算法求解约束优化问题【含Matlab源码 1428期】
  9. 2020年中国林业有害生物发生及防治面积统计情况,林业有害生物防控措施工作的开展刻不容缓「图」
  10. Labwindows扫盲+技巧贴,CVI学习必看
  11. c语言10以内奇数的乘积,求奇数的乘积
  12. 手机怎么压缩图片?分享一下压缩的好方法
  13. AD7606应用笔记
  14. css响应式网页设计:自适应屏幕宽度、移动页面开发技巧
  15. 解析SWD协议,烧写程序
  16. 数学图形之单叶双曲面
  17. 【转】本人常用资源整理(ing...)
  18. 裴波那契数列及其递归算法
  19. LabWindows界面的程序控制
  20. linux的用户和组的管理

热门文章

  1. 使用realsense d415进行拍照,延迟,to_string,string,开机自启
  2. NOIP 2017 小凯的疑惑 (数学)
  3. Oracle删除创建用户并授权
  4. 家庭太阳能发电,何时能告别“两极分化”?
  5. 智慧养老解决方案有哪些新行业诞生?
  6. bootstrap框架过时了吗_浅议bootstrap 框架优缺点
  7. 通过 Flick 看数据库集群
  8. 三轴加速度计值检测碰撞和摔倒
  9. 尚硅谷的 ediary 笔记_外卖行业还能怎么演化?劳动力稀少的硅谷正在探索
  10. 手工编写html5,HTML5实现动画效果的方式汇总