使用Dev C++进行Windows socket网络编程,需链接lws2_32库
背景
在我们使用Dev C++进行C语言编程时,如果我们引入的库是C语言标准库,那我们是不要在编译器选项中进行额外的设置的,但是如果我们使用的是一些不是C语言标准库,那我们可能就需要在编译器选择中进行设置。
使用Dev C++进行Windows socket网络编程时,我们需要额外导入。
Windows 下的 socket 程序和 Linux 思路相同,但细节有所差别:
Windows 下的 socket 程序依赖 Winsock.dll 或 ws2_32.dll,必须提前加载。
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库相关推荐
- Windows Socket 网络编程(二)
来源: http://www.vckbase.com/document/viewdoc/?id=484 Windows Socket 网络编程(二) -- 套接字编程原理 作者: 冰点工作室 小鹰 [ ...
- Windows Socket 网络编程(一)
**来源:http://www.vckbase.com/document/viewdoc/?id=472 Windows Socket 网络编程(一)** -- TCP/IP体系结构.特点及相关术语 ...
- Linux C++/Java/Web/OC Socket网络编程
一,Linux C++ Socket网络编程 1.什么是TCP/IP.UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制 ...
- Socket网络编程(2)--服务端实现
中秋了,首先祝大家中秋快乐,闲着无事在家整一个socket的聊天程序,有点仿QQ界面,就是瞎折腾,不知道最后是不是能将所有功能实现. 如果你对socket不了解,请看这篇文章:http://www.c ...
- 【网络编程】之四、socket网络编程例解
前面说了那么多,现在我们给出4个代码+详解,基于win32平台的socket编程.使用TCP 和 UDP 两种协议. OK,先来看一下TCP服务器和客户端: [cpp] view plaincopy ...
- 多实例多进程网络编程PHP,php socket网络编程基础知识(四):多进程
标签:status 传递 windows 返回 修改 队列 _for 响应 关联 说明 php在web编程时是不需要考虑多进程的,但整个php流程是涉及到多进程的,只不 ...
- Socket网络编程(TCP/IP/端口/类)和实例
原文:C# Socket网络编程精华篇 转自:微冷的雨 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次模型 当然这里我们只讨论重要的四层 01,应用层(Ap ...
- Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver
今日内容:socket网络编程 1.OSI七层协议 2.基于tcp协议的套接字通信 3.模拟ssh远程执行命令 4.tcp的粘包问题及解决方案 5.基于udp协 ...
- socket网络编程 java_Java Web 基础(一) 基于TCP的Socket网络编程
一.Socket简单介绍 Socket通信作为Java网络通讯的基础内容,集中了异常.I/O流模式等众多知识点.学习Socket通信,既能够了解真正的网络通讯原理,也能够增强对I/O流模式的理解. 1 ...
最新文章
- go 类型 value 不支持索引_10分钟掌握PostgreSQL 5种索引的应用场景
- 配置虚拟主机 和 打war包
- Windows、Linux和MAC的CR, LF, CR/LF换行符
- 谐波分析显著性检验matlab,关于谐波检测方法的MATLAB仿真及综合性能分析.pdf
- IAR 下根据官方库建立 STM32的工程
- 【K210】【MaixPy】三、Maix Dock入门之LCD的使用(播放BadApple)
- SCWS分词扩展在UNIX/LINUX下的安装方法
- 【单目标优化求解】基于matlab水循环算法求解约束优化问题【含Matlab源码 1428期】
- 2020年中国林业有害生物发生及防治面积统计情况,林业有害生物防控措施工作的开展刻不容缓「图」
- Labwindows扫盲+技巧贴,CVI学习必看
- c语言10以内奇数的乘积,求奇数的乘积
- 手机怎么压缩图片?分享一下压缩的好方法
- AD7606应用笔记
- css响应式网页设计:自适应屏幕宽度、移动页面开发技巧
- 解析SWD协议,烧写程序
- 数学图形之单叶双曲面
- 【转】本人常用资源整理(ing...)
- 裴波那契数列及其递归算法
- LabWindows界面的程序控制
- linux的用户和组的管理
热门文章
- 使用realsense d415进行拍照,延迟,to_string,string,开机自启
- NOIP 2017 小凯的疑惑 (数学)
- Oracle删除创建用户并授权
- 家庭太阳能发电,何时能告别“两极分化”?
- 智慧养老解决方案有哪些新行业诞生?
- bootstrap框架过时了吗_浅议bootstrap 框架优缺点
- 通过 Flick 看数据库集群
- 三轴加速度计值检测碰撞和摔倒
- 尚硅谷的 ediary 笔记_外卖行业还能怎么演化?劳动力稀少的硅谷正在探索
- 手工编写html5,HTML5实现动画效果的方式汇总