当前位置:首页 » 编程软件 » 孙鑫网络编程

孙鑫网络编程

发布时间: 2022-06-09 19:08:48

1. 孙鑫老师的VC++教学视频的第14课网络编程是不是得在Windows 2000操作系统下才能实现,我在XP下怎么不行啊

一般情况下xp,vista都是可以的,千万注意要加上楼上那个链接库

2. 如何学习网络编程

1.利用WinInet函数库写了几个简单的网络应用程序:简易登录、查询新书RSS等;了解了HTTP协议的一些内容。
2.看孙鑫的VC视频教程, ,虽然照着视频能够写出实例代码来,但是仅仅是会用,其中很多原理都不理解,比如说WSA开头的异步函数,Winsock2对socket的一些增强或者改进等。
3.一边上《计算机网络》的课,一边读《C++网络编程》。通过计算机网络课我知道了所谓的协议分析是怎么一回事情,通过wireshark抓包分析,“协议”就如同这个词本身意思是一样的,是通信过程中的一种约定,规定了数据包中的每个或每几个字节代表了什么意思;
4.去看《计算机网络高级编程技术》,我初略的翻了翻,看到里面的基础、提高、综合训练篇、突然反应过来:socket和操作系统提供的系统调用,基本上都是C语言接口的,协议字段的具体表现,不就是用结构体吗?协议中的几个字节代表什么与C语言基本数据类型就能对应了起来(-_-!这是缺少实践造成的迟钝啊)。
5.了解下Boost.asio,java的MINA框架,这些都是异步I/O前摄器模式的实现,当然还有ACE_Proactor
6.阅读《深入理解MySQL核心技术》和Linux程序设计(第3版)》,从把整个知识体系都联系起来,从socket到完整网络服务器程序,网络编程才算正式进入了门道。

所以,正常的学习路径应该是:C/C++语言 -->>计算机网络 -->>协议分析 -->>BSD Socket、OS API ( fork()、pthread_create()、select() ) -->>Reactor、Proactor模式

在这个过程我的体会是,最好是从Linux下或者Unix底下学习,比起Windows,Linux的编程接口设计更很简洁,使用的基本上都是标准的数据类型,很多源代码是开放的,而且我比较习惯于看小写的英文单词。。。我发现,如果最一开始能够从整体上了解网络编程的全景,就会知道应该学习什么,下一步该学什么,循序渐进才是好的学习方法。

我所理解的“全景”:

--计算机网络种类有很多种:ATM、X.25、Internet(大大小小的局域网互联而成,以太网、令牌网等等)

---- Internet通信的协议也有很多种,其中最核心的是TCP/IP协议

---- 网络编程接口也有很多种,BSD UNIX提出了socket,是一种通信机制,是管道概念的扩展

-------- socket有三种属性:域(或协议族)、类型、协议

-------- 最常用的协议族有AF_UNIX和AF_INET(对应现在的Internet),AF_INET的类型又有两种:数据流(tcp)和数据报 (udp)

------------ 在<sys/types.h>和<sys/socket.h>定义了socket编程的系统调用:socket()、struct sockaddr、bind()、listen()、accept()、connect()、close()、sendto()、recvfrom()

------------ 其中bind()是用来给创建的socket命名的,如果是AF_UNIX会关联到文件系统的一个路径上,如果是AF_INET则会绑定到IP的端口号上;listen()用来保存未处理的客户请求的队列;accept()等待客户端的连接,会创建新的socket用来处理客户端连接。

------------ 由于历史原因,不同的计算机使用不同的字节序来表示整数,Intel和Motorola的处理器的字节序就不一样,所以要转换为网络序(好像Unicode中的Little-Endian、Big-Endian也是这么个情况。。)

------------ 服务器必然为多客户服务的,为了提高运行效率,高效利用系统资源,就出现多进程、多线程的服务端程序,这就需要用到fork()和pthread_create()了,再往下就是select()、pull()等多路复用和异步I/O机制了。

----------------为了简化网络应用程序的开发,增加代码的复用性、扩展性、可谓性;出现了Reacotr、Preactor等设计模式,出现了ACE、Boost.asio等框架、进一步简化网络开发的难度,出现了WinInet、libcurl这样的面向应用层的函数库。

3. 孙鑫教学视频 网络编程 为什么客户端不用绑定和指定端口号

服务器要监听,所以需要绑定端口。这样客户端才能根据IP地址和端口号访问服务器,客户端的端口是随机分配的。是从还没有使用的端口中分配的。当服务器端收到一个客户端的连接时就得到了客户端的IP地址和端口了。

通俗点好比我们上午,我们需要知道网站的地址,而网站服务器不需要知道我们的地址,我们访问网站后网站自然会将我们需要的东西按照我们请求中的地址发回来

4. 在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

(4)孙鑫网络编程扩展阅读

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);比起加载,卸载的函数真是轻松愉快。

5. 孙鑫 VC++ 14章网络编程 疑问

服务器端不停打印:My name is cwj
客户端不停打印:Welcome 127.0.0.1 to Amercian!

6. 看孙鑫VC视频14课网络编程Sprintf函数的用法怎么用啊

sbuffer错了。
不能是char sbuffer;
应该是char sbuffer[100];
或char* sbuffer;sbuffer=malloc(100*sizeof(char));之类。
sprintf中的第一个参数是缓冲区首地址,就是存放sprintf输出内容的地方。要求是char*类型。所以用char变量作第一个参数当然会提示错误。

7. C++ 实现 多媒体+网络编程,实现在线看视屏,或听音乐的功能

《Visual C++网络编程经典案例详解》由浅入深、循序渐进地向读者介绍了Visual C++网络编程的基础知识,并且在此基础上讲解了常见的Visual C++网络编程技术及典型应用案例,最终使读者从根本上提高自身的编程水平,能够独立开发网络应用程序。《Visual C++网络编程经典案例详解》内容包括网络编程基础知识、Socket套接字编程基础、多线程技术、FTP浏览器实例程序、网页浏览器实例程序、网络通信器、邮件收发器、实用播放器、网络文件传输器、P2P网络播放器、Q版聊天软件的实现、串口通信技术等。《Visual C++网络编程经典案例详解》最后专门讲解了如何用Visual C++实现发送手机短信的案例,其中具体讲解了串口通信编程的实现方法、所需要的硬件设备以及数据封装等知识。
《Visual C++网络编程经典案例详解》配套光盘中提供了作者专门为《Visual C++网络编程经典案例详解》录制的多媒体语音教学视频和《Visual C++网络编程经典案例详解》所涉及的源代码,这些源代码都经过精心调试,在Windows XP和Windows 2003下测试通过。
《Visual C++网络编程经典案例详解》适合广大用Visual C++进行网络程序开发的人员和想进一步提升网络编程水平的人员阅读,尤其适合具有一定C语言基础和C++语言基础的人员或大中专院校的学生阅读。

8. 孙鑫的JAVA视频看懂了然后学什么

现在你不是看书的时候了,你都看懂了就应该找些小项目去实践来巩固和加深你的学习,你看一百遍书,还不如你做把JAVA基础知识应用到你自己动手的小项目强

那我就推荐下 你可以做一个考试系统,首先要做登陆,才可以考试,而且都只能用java基础知识里面的内容,考试题可以只做三道考试题,不用做多了,是那个意思就行,考试系统的其它要求,要求考试超时自动提交,而且由电脑评分,先只做全部是选择题的,数据随便你存哪,可以考虑先存在字符串数组,完成,完成后可以把数据存在XML或数据库里,从数据库里存取,如果你有精力,有时间,也可以考虑做一个客户端程序,一个服务器程序通信,实现网上考试,

碰到一个问题可以尽量使用JAVA基础知识里面的技术,作为练习

还有重要的一点 就是你在编写小项目的时候,肯定会碰到问题和错误,这时候别觉得你很不行,正好相反,解决问题这时候正是你正在不知不觉提高能力的时候,解决错误你要知道下JAVA的单步运行,调试DEBUG,还有一定要知道看错误消息,否则在JAVA学习在举步艰难

9. 孙鑫C++视频教程里的网络编程在哪节啊

在第14、15课(15中有程序实例)

10. 关于孙鑫老师chat程序的问题

你发到谁机子上面了?我猜测很可能你发给的人不是你同学或同事什么的吧,就是说你必须发给跟你一个局域网的人,我也看过孙鑫的视频,学习过一点网络编程的基础,我以前也试过。一般的那些网络编程程序都是只能在局域网运行聊天的,因为不在一个局域网就要利用一些技术,否则程序根本找不到你程序里面的要连接的那个IP,要通过一定的技术才能超越局域网找到IP。你想想,整个Internet网络有多少台电脑啊,就通过一个IP简单的找到还是不容易的,得采用一定的编程技术,具体的我没弄过,如果你只是学习一下网络编程,现在可以不用研究那么深吧。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:336
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:944
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:742
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:372