⑴ 在windows下用C语言如何实现socket网络编程,需要用到哪些头文件或者库
需要用到的头文件包含:
#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
(1)window网络编程扩展阅读
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);比起加载,卸载的函数真是轻松愉快。
⑵ Windows下C语言网络编程快速入门。
C语言的学习,一般的方式是,先学C,然后是C++,最好还要有汇编语言和微机原理基础,然后才是Visual
C++。这样的方式,对学习者来说,要花费很多时间和耐力。而在学校教学中,也没有时间深入学习Windows编程的实用技术了。其实,具有了C语言基础后,再有一些基本的C++类的概念,就可以直接学习Windows
C编程了。一、走近Windows
C语言很多语言都把显示一个“Hello,World!”做为第一个入门程序,
C语言的第一个程序是这样的:#include<stdio.h>
main()
{
printf(“Hello,World!”);
}如果把main函数写成带参数的main函数,应该是:#include<stdio.h>
main(int
arge,char
*argv[])
{
printf(“Hello,World!”);
}Windows
C的第一个程序和这个程序在形式和原理上都是一致的,只是有两点不同:1.
主函数接收的形参不只是命令行中的字符串的个数和字符串的首地址。2.
C语言的很多函数在Windows
C中都可以继续使用,但象printf()屏幕显示等函数就不能继续使用了。因为Windows是多任务操作系统,屏幕已不再为某一个应用程序所独有,Windows
C应用程序要显示字符串,需要使用Windows提供的API函数,开自己的窗口下面是一个最简单的,显示“Hello,World!”的Windows
C程序:#include<windows.h>
APIENTRY
WinMain(HINSTANCE
hInstance,HINSTANCE
hPrevInstance,
LPSTR
lpCmdLine,int
nCmdShow)
{
MessageBox(NULL,"Hello,World!","第一个Windows
C程序",MB_OK|MB_ICONASTERISK);
}主函数的形参有四个:1)
Hinstance:接收程序运行时当前实例的句柄;2)
HprivInstance:前一个实例的句柄;3)
LpCmdLine:程序命令行指针;4)
NcmdShow:一个用来指定窗口显示方式的整数。这几个参数的使用我们会在深入的学习中介绍的。显示Hello,Word!字符串,我们使用了一个MessageBox函数,这个函数会在屏幕上显示一个对话框,它的原型是:int
MessageBox(HWND
hWnd,LPCTSTR
lpText,LPCTSTR
lpCaption,UNIT
uType)四个参数分别是:1)
HWnd:父窗口的句柄;2)
LpText:要显示字符串的指针;3)
LpCaption:对话框标题字符串的指针;4)
UType:显示在对话框上的小图标的类型。使用这个函数要包含windows.h头文件。调试一下,怎么样?窗口上弹出了一个“第一个Windows
C程序”对话框,上面有一行字:“Hello,World!”。世界真的很美好啊!!
你连答案也发啦,晕!