在windows下用C语言如何实现socket网络编程,需要用到哪些头文件或者库?

是C语言,不是VC,不是MFC。怎么搭建平台呢。windows下。

需要用到的头文件包含:

#include <winsock2.h> 

#include <windows.h>

与Linux环境下socket编程相比,windows环境多了一个步骤:启动或者初始化winsock库

Winsock,一种标准API,一种网络编程接口,用于两个或多个应用程序(或进程)之间通过网络进行数据通信。具有两个版本:

Winsock 1:

Windows CE平台支持。

头文件:WinSock.h

库:wsock32.lib

Winsock 2:

部分平台如Windows CE貌似不支持。通过前缀WSA可以区别于Winsock 1版本。个别函数如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都属于Winsock 1.1规范的函数;

头文件:WinSock2.h

库:ws2_32.lib

mswsock.h用于编程扩展,使用时必须链接mswsock.dll

扩展资料

winsock库的加载与卸载:

加载:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);

加载成功,返回值为0。

WORD wVersionRequested:加载的winsock版本,使用宏MAKEWORD(x, y),x表示高字节,y表示低字节。然而使用时MAKEWORD(2, 2)。高字节与低字节相同~~

LPWSADATA lpWSAData:WSADATA结构的指针,传入参数后,系统帮助我们填充版本信息。有兴趣的可以看看结构体内容,不过基本用不着。

卸载:int WSACleanup(void);比起加载,卸载的函数真是轻松愉快。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-13

在windows下用C语言如何实现socket网络编程,需要用到以下头文件和库:

1、头文件 winsock2.h, 

2、静态库文件 Ws2_32.lib 

3、动态DLL文件 Ws2_32.dll 

我们可以简单的把Socket理解为一个可以连通网络上不同计算机程序之间的管道,把一堆数据从管道的A端扔进去,则会从管道的B端(也许同时还可以从C、D、E、F……端冒出来)。管道的端口由两个因素来唯一确认,即机器的IP地址和程序所使用的端口号。

扩展资料:

Socket可以支持数据的发送和接收,它会定义一种称为套接字的变量,发送数据时首先创建套接字,然后使用该套接字的sendto等方法对准某个IP/端口进行数据发送;接收端也首先创建套接字,然后将该套接字绑定到一个IP/端口上,所有发向此端口的数据会被该套接字的recv等函数读出。如同读出文件中的数据一样。

参考资料来源:百度百科-套接字

本回答被网友采纳
第2个回答  2015-05-16

在windows下用C语言如何实现socket网络编程,需要用到以下头文件和库:

    头文件    winsock2.h,

    静态库文件    Ws2_32.lib

    动态DLL文件    Ws2_32.dll


写一个UDP发送程序的步骤如下:

1.         用WSAStartup函数初始化Socket环境;

2.         用socket函数创建一个套接字;

3.         用setsockopt函数设置套接字的属性,例如设置为广播类型;很多时候该步骤可以省略;

4.         创建一个sockaddr_in,并指定其IP地址和端口号;

5.         用sendto函数向指定地址发送数据,这里的目标地址就是广播地址;注意这里不需要绑定,即使绑定了,其地址也会被sendto中的参数覆盖;若使用send函数则会出错,因为send是面向连接的,而UDP是非连接的,只能使用sendto发送数据;

6.         用closesocket函数关闭套接字;

7.         用WSACleanup函数关闭Socket环境。

与之类似,一个UDP接收程序的步骤如下,注意接收方一定要bind套接字:

1.         用WSAStartup函数初始化Socket环境;

2.         用socket函数创建一个套接字;

3.         用setsockopt函数设置套接字的属性,例如设置为广播类型;

4.         创建一个sockaddr_in,并指定其IP地址和端口号;

5.         用bind函数将套接字与接收的地址绑定起来,然后调用recvfrom函数或者recv接收数据; 注意这里一定要绑定,因为接收报文的套接字必须在网络上有一个绑定的名称才能保证正确接收数据;

6.         用closesocket函数关闭套接字;

7.         用WSACleanup函数关闭Socket环境。

参考资料地址:http://blog.csdn.net/xxbsky520/article/details/6161217

第3个回答  2012-08-06
主要是看采取什么样的协议。是tcp还是udp使用的头文件是不一样的。不过差别都不大。winscok2.h就够用了。不过往深了走其实还是要涉及到其他的,这个普通的套接字编程主要是winscok2.h里面的。
第4个回答  2012-08-02
那就是控制台应用程序喽
看孙鑫VC6视频教程网络编程部分
很详细,VC6只是个平台,可以随便用什么来写
主要用到winscok2.h追问

C语言可以使用winscok2.h吗?

追答

winsock2我记得是标准c库吧,c语言为什么不能用
如果是vc用的就是windows.h了
如果还不行我明天试试看,现在的电脑没装任何代码编译工具-。-

但这个思路应该是对的,调用C的标准库,有支持socket的

还有个问题lz需要搞明白,我在VC的控制台界面里写代码,那个就可以写成标准C啊,这个和语言没关系,想写C++就用c++,写C就用C

c++的精髓是什么,类,对了,那类又是什么,类说的直白点就是个特殊的结构体
C完全可以使用

追问

谢谢了。

本回答被网友采纳