在windows下,如何用纯C语言实现socket网络编程?

Python019

在windows下,如何用纯C语言实现socket网络编程?,第1张

mfc只是对socket进行了一些封装,大部分人做网络编程都是用的原始的socket,比如如下接口都可以在c下进行调用

1.socket()

2.bind()

3.connect()

4.listen()

5.accept()

6.send() 和recv()

7.sendto() 和recvfrom()

8.close() 和shutdown()

9.getpeername()

10.gethostname()

这些接口是在Winsock2.h中定义的不是在mfc中定义的,你只需要包含Winsock2.h头文件和Ws2_32.lib库就可以了。

在C语言中define不是关键字。define是编译器的预编译指令,是编译器实现的,不是C语言的内容。

C语言中的关键字及意义如下:

auto 局部变量(自动储存)

break无条件退出程序最内层循环

case switch语句中选择项

char单字节整型数据

const定义不可更改的常量值

continue中断本次循环,并转向下一次循环

default switch语句中的默认选择项

do 用于构成do.....while循环语句

double定义双精度浮点型数据

else构成if.....else选择程序结构

enum枚举

extern在其它程序模块中说明了全局变量

float定义单精度浮点型数据

for构成for循环语句

goto构成goto转移结构

if构成if....else选择结构

int基本整型数据

long长整型数据

registerCPU内部寄存的变量

return用于返回函数的返回值

short短整型数据

signed有符号数

sizoef计算表达式或数据类型的占用字节数

static定义静态变量

struct定义结构类型数据

switch构成switch选择结构

typedef重新定义数据类型

union联合类型数据

unsigned定义无符号数据

void定义无类型数据

volatile该变量在程序中执行中可被隐含地改变

while用于构成do...while或while循环结构

C语言是贝尔实验室在20世纪70年代初开发的一种用途广泛的编程语言。

1969年Ken Thompson在PDP-7上用汇编语言编写了Unix的最初版本,用汇编语言编写的程序是难以维护的,Ken Thompson 意识到需要一种更加高级的变成语言来完成Unix的开发,于是他设计了一种简单的B语言,B语言是在BCPL语言的基础上开发的(BCPL是上个世纪60年代中期产生的一种系统编程语言)。

不久后,Dennis Ritchie加入到了Unix项目,并开始用B语言编写程序。1970年, 贝尔实验室为Unix项目争取到了一台PDP-11计算机。B语言经过改进运行在了PDP-11上时,Ken Thompson就用B语言重写了部分Unix代码。

到了1971年,B语言已经无法满足Unix的开发了,于是Dennis Ritchie开始开发B语言的升级版。他最初将心开发的语言明明为NB(New B), 但后来,新语言与B语言差别越来越大,于是他决定将它命名为C语言。

1973年C语言已经足够稳定,可以用来重新编写Unix系统了。改用C语言编写的程序显示出一个非常重要的好处:可移植性。通过在贝尔实验室里为其他类型的计算机编写C语言编译器,Unix也同样可以在不同类型的计算机上运行了。

C语言自出现后,一直持续发展,1978年Brain Kernighan 和 Dennis Ritchie 合作编写并出版了The C Programming Language (K&R)。此书一经出版就迅速成为了C程序员的宝典。由于当时缺少C语言的正式标准,所以这本书就成为了事实上的标准。

随着C语言的迅速普及,编写新的C语言编译器的程序员们都参考"K&R",但"K&R"对一些语言特性的描述非常模糊,导致编译器会对这些特征进行不同的处理(目前C语言里依然有很多未定义行为)。

由于在“K&R”出版后,C语言一直在持续发展,对C语言进行全面、准确且最新描述的需求就显得尤为迫切了,如果缺乏标准,就会出现各种方言(参考Lisp)会影响到C语言的可移植性。

1983年美国国家标准协会(ANSI)开始编制C语言标准。经过多次修订,C语言标准于1988年完成,并在1989年12月正式通过, 简称C89, 1999年通过了C99标准,2007 年,C语言标准委员会又重新开始修订C语言,到了 2011 年正式发布了C11。