c 网络编程(计算机网络编程)

admin 145 0

很多朋友对于c 网络编程和计算机网络编程不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

一、如何学习网络编程

具体到编程,用java来实现网络编程是很容易的,可以作为网络编程的入门。使用C++和winsock相对复杂一些。总之看实际需要了。你好初学网络编程者可以从以下几个步骤开展:1)下载一个可以互动的学习工具,通过这个与这个工具互动,我们可以及时的学到每个api的结果如果。我个人强烈推荐一个互动好工具,即python,下载地址

对于有c/c++或java基础的朋友通过一两个礼拜的时间就可以上手了,另外个人建议初学者可以学习dive into python。2)掌握网络编程中会用到的几个基本概念和内涵,比如IP地址,port号,socket等3)记住和消化网络编程C/S模型,把server和client端编程的常用模式理解和消化4)花几天时间学习socket api集,api集可以分为下面几大类:创建 socket bind listen accept收发 read/recv/recvfrom write/send/sendto关闭 close shutdown参数 getsockopt/setsockopt地址 gethostbyaddr getaddrbyhost,...在学习这些api时候,可以先关注在函数功能,参数意义上5)结合python互动平台,实践socket api的用法,比如socket函数怎么使用,bind怎么使用等等。在互动过程中,我们可以变换参数,看看调用结果如何。比如,创建一个tcp socket的语法如下:socket(AF_INET,SOCK_STREAM)创建一个udp socket的语法如下:socket(AF_INET,SOCK_DGRAM)6)学习socket server端编程实现简单规约比如echo,time等,然后通过cmd中的telnet来测试。7)学习I/O模型,比如阻塞、非阻塞和反应式(select,poll,WaitForMultipleObject)等8)学习Richard Stevens的《Unix网络编程》,深入学习其中的api原理以及服务端设计原理,并通过代码编写。9)下载高性能网络编程框架twisted,笔者强烈推荐,它将使你的网络编程效率提高10倍以上。10)学习设计模式、操作系统知识比如线程、进程、同步等。邻家阿呆回答采纳率:29.0% 2008-12-18 09:55检举我是高手,我可以教你1.明确学习目的学习编程对大多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。2.打好基础学编程要具备一定的基础,总结之有以下几方面:(1)数学基础从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。(2)逻辑思维能力的培养学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。

二、c程序如何在windows下进行网络编程

和编译(OR IDE)环境有关,比如vc就可以直接使用所有c的库函数.

ftp使用TCP,那么就用流式套接字(SOCK_STREAM)的相关函数,如果作为客户端,调用顺序如下:

程序只能在传输层进行开发(既TCP/UDP),不可以在应用层进行操作,即没有这样的库,调用它一个函数就实现了ftp的客户端或服务器端。如果需要可以参照网上的ftp代码。

#pragma comment(lib,"ws2_32.lib")

三、Linux C语言网络编程问题!

1、unsigned int dir(char* server){

2、 struct sockaddr_in serv_adr;//远程主机的地址

3、 struct hostent*host;//指向远程主机的指针

4、 unsigned char databuf[FILEBUF_SIZE];//数据

5、 int bytes= 0, bytesread= 0;//字节数,读取到的字节数

6、 host= gethostbyname(server);//根据远程主机的主机名,得到指向远程主机的指针

7、 if(host==(struct hostent*) NULL){//如果得到指向远程主机的指针失败,报告错误,并返回

8、 perror("gethostbyname failed");

9、}memset(&serv_adr, 0, sizeof(serv_adr));//初始化远程主机的地址,结构体内所有成员清零

10、 serv_adr.sin_family= AF_INET;//设置地址类型

11、 memcpy(&serv_adr.sin_addr, host->h_addr, host->h_length);//取出指向远程主机的指针中包含的地址信息,赋给远程主机地址变量

12、 serv_adr.sin_port= htons(SERVICE_PORT);//设置端口号,比如http服务对应80端口,ftp对应21端口

13、 if((sck= socket(AF_INET, SOCK_STREAM, 0))< 0){//如果建立TCP协议的套接字失败,报告错误,并返回

14、if(connect(sck,(struct sockaddr*)&serv_adr, sizeof(serv_adr))< 0){//如果使用该套接字连接到远程主机失败,报告错误,并返回

15、}write(sck,"DI\n\n", 4);//连接成功,发送内容为"DI\n\n"的消息,远程主机收到该消息,解析后生成目录列表,并将目录列表信息传递回来

16、printf("Remote directory listing:\n");//输出提示信息“远程主机正在生成目录列表”

17、while((bytes= read(sck, databuf, FILEBUF_SIZE))> 0){//从套接字的数据流中读取远程主机的返回信息(即目录列表),每次读取FILEBUF_SIZE个字节,直到全部读取完毕

18、 write(fileno(stdout), databuf, bytes);//将每次读到的数据,输出到标准输出流(stdout),即屏幕上

19、 bytesread+= bytes;//接收到的字节数累加

20、 close(sck);/* Close the socket*///通信完成,关闭套接字,关闭连接

21、 return bytesread;//返回读取到的字节数(即远程主机返回的信息的大小)

四、c语言怎样实现网络编程

1、要实现网络编程,首先得了解网络编程的原理。

大部分网络编程底层都是通过TCP/IP或者UDP协议进行通讯,不管是TCP还是UDP通讯,都是通过调用socket实现的。

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

Socket通讯分为两部分:服务器端和客户端,服务器端监听客户端的连接,连接上之后,实现数据通讯,流程

intsockfd,new_fd;/*socket句柄和建立连接后的句柄*/

structsockaddr_inmy_addr;/*本方地址信息结构体,下面有具体的属性赋值*/

structsockaddr_intheir_addr;/*对方地址信息*/

sockfd=socket(AF_INET,SOCK_STREAM,0);//建立socket

五、c语言网络编程 书

朋友,我的建议是,你在学网络编程之前,一定要把c基础学好,当然不只看谭教授的书了,下面推荐的几本书被公认为c语言方面的经典书籍,分别是:

1、c和指针 Kenneth A.Reek著徐波译人民邮电出版社

2、c陷阱和缺陷 Andrew Koenig著高巍译人民邮电出版社

3、c专家编程 Dennis Ritchie著人民邮电出版社

另外推荐基本网络编程书籍,也被称为经典,分别是:

1、TCP/IP详解卷1:协议 W. Richard Stevens著谢希仁校机械工业出版社

2、unix网络编程(第三版) steven著清华大学出版社

你说你c基础不是很好,所以我建议你看书的先后顺序:先把谭教授那本书看透,接着看上面的c语言方面的三本书籍,当然你可以先看其中的一本或两本,看透后,你的c语言功底就很不错了(一定要结合书里面的范例多做题),此时你的基础就打好了,就可以接着看下面我给你推荐的两本关于网路编程方面的书籍了!好好学习,学海无涯!

OK,本文到此结束,希望对大家有所帮助。