一个简单的Windows下的C语言socket程序 [复制链接]

上节演示了 Linux 下的 socket 程序,这节来看一下 Windows 下的 socket 程序。同样,server.cpp 为服务器端代码,client 为客户端代码。

服务器端代码 server.cpp:

Ijr0LTr3RNN8mux5.jpg

FqqwY17bjKtO2171.jpg

不管你是小白还是大牛,小编我都欢迎进C/C++共享资源群:231662552不定期分享干货,包括我自己整理的一份2018最新的学习资料和零基础入门教程,送给大家,欢迎初学和进阶中的小伙伴

客户端代码 client.cpp:

lv1gsR51asi1mAI5.jpg

将 server.cpp 和 client.cpp 分别编译为 server.exe 和 client.exe,先运行 server.exe,再运行 client.exe,输出结果为:

Message form server: Hello World!

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

1) Windows 下的 socket 程序依赖 Winsock.dll 或 ws2_32.dll,必须提前加载。DLL 有两种加载方式

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

3) Linux 下使用 read() / write() 函数读写,而 Windows 下使用 recv() / send() 函数发送和接收。

4) 关闭 socket 时,Linux 使用 close() 函数,而 Windows 使用 closesocket() 函数。

z4WwGoG0K1GZ1gwJ.jpg

733
举报

本版积分规则

发表主题 回复

加入酷开

酷开,为家庭互联网而生

(c) 2015-2018 Comsenz Inc. Discuz! All Rights Reserved

ICP备案证书号: 粤ICP备09046113号  许可证号码:川B2-20120050-3