windows下编程

搭建开发环境

1、安装GNU编译器

解压mingw.rar到C盘
把C:\mingw\bin路径添加到 path 环境变量中
打开命令提示符,使用gcc -v检查配置是否成功

2、安装VS Code文本编译器

安装C/C++、Chinese、Code Runner插件。
写一个HelloWorld程序编译并执行

Windows 系统下的 socket 编程

1、winsock2.h,Windows系统下使用socket只需要一个头文件。
2、编译时需要添加ws2_32.lib库,设置->搜索code-runner.executorMap,打开settings.json文件,把C的编译参数修改为:

"c": "cd $dir && gcc $fileName -std=gnu99 -lws2_32 -lpthread -o  $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"

3、初始化网络库:

int WSAStartup (WORD wVersionRequested, LPWSADATA lpWSAData);

功能:初始化网络库
mVersionRequested:明程序请求使用的Socket版本,其中高位字节指明副版本、低位字节指明主版本。
MAKEWORD(主版本号,副版本号),一般使用2,2即可。
lpWSAData:返回请求的版本信息。
返回值:成功返回0,失败返回错误信息。

4、使用标准socket收发数据接口

ssize_t recv(int sockfd, void *buf, size_t len, int flags);

功能:接收数据
sockfd:socket对象描述符
buf:缓冲区首地址
len:缓冲区的大小
flags:是否阻塞,一般写0即可。

ssize_t send(int sockfd, const void *buf, size_t len, int flags);

功能:发送数据。
sockfd:socket对象描述符。
buf:待发送的数据首地址。
len:要发送的字节数。
flags:是否阻塞,一般写0即可

int closesocket(int socket);

功能:关闭 socket 对象

如何优雅得使用socket

由于大小端的原因,在使用socket通信时不能直接发送变量,而是要发送字符串,因此要先把要发送的数据转换成字符串再发送。

int sprintf(char *str, 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值