http://www.codeproject.com/internet/winsockintro01.asp一、简单的TCP服务器介绍WinSock API是一套供Microsoft Windows操作系统使用的套接字程序库,它最初基于Berkeley...">
作者:nishant s原文链接:asp">http://www.codeproject.com/internet/winsockintro01.asp
介绍 【程序编程相关:非法探取密码的原理及其防范 】
一.简单的tcp服务器 【推荐阅读:关于ModifyStyle或Modify】简单的tcp服务器 【扩展信息:怎样在VC++中访问、修改注册表 】
winsock api是一套供microsoft windows操作系统使用的套接字程序库,它最初基于berkeley套接字,但是其中加入了一些microsoft的特殊改动.在这篇文章中,我要试着给你介绍如何使用winsock来进行套接字程序设计,并假设你没有在任何操作系统上进行过网络编程的经验.如果你只有一台单独的机器,那么不用着急,你仍然可以进行winsock程序设计.你可以使用名为localhost的本地回环地址,它的ip地址是127.0.0.1.这样一来,如果你在机器上运行了一个tcp服务器,那么同一机器上的客户端程序就可以使用这个回环地址连接到服务器了.
在本文中,我将通过一个简单的tcp服务器来向你介绍winsock,我们会一步一步地创建这个程序.但是,在我们开始之前,你还必须做一些事情,这样我们才能为开始我们的winsock程序做好准备.·首先,使用vc++ 6.0应用程序向导来创建一个win32 console application.·选择add support for mfc选项.·打开stdafx.h文件,并添加这一行:#include <winsock2.h>.·选择project-settings-link,并在库模块列表中加入ws2_32.lib.
main函数
int _tmain(int argc, tchar* argv[], tchar* envp[]){ int nretcode = 0;
cout << "press escape to terminate program\r\n"; afxbeginthread(serverthread,0); while(_getch()!=27);
return nretcode;}
我们在main()中所做的是开启一个线程,然后对一个_getch()调用进行循环._getch()仅仅是等待一个键的按下,并返回这个读入字符的ascii值.我们一直循环,直到返回27这个值为止——既然27是escape键的ascii码.你可能想知道的是,即使我们按下了escape,我们开启的线程也还会是活动的状态.不用为这些事情担心,因为当main()返回的时候,进程就会被终止,主线程开启的线程也会被突然终止.
serverthread函数
现在我所要做的事情就是把我们的serverthread函数列出来,并使用代码的注释来解释相关的代码行做了些什么.我们的tcp服务器主要做的事情是监听端口20248,这个数字也就是我在code project的成员id.... 下一页