网上已经有了一个中文版本.可是为了自己学习.决定自己翻译一遍
1.5. Note for Windows Programmers
我特别不喜欢windows,推荐大家试一下Linux, BSD, or Unix .虽然这样讲,但是你还是可以在windows下面使用网络编程的.
首先,先不用管我这里用到的系统头文件.你要用的就是:
#include <winsock.h>
等等!你还要在使用sockets库中的其他方法之前先调用WSAStartup().这段代码是这样使用的。
#include <winsock.h>
{
WSADATA wsaData; // if this doesn’t work
//WSAData wsaData; // then try this instead
if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) {
fprintf(stderr, "WSAStartup failed.\n");
exit(1);
}
你告诉编译器去连接winsock库,通常称做wsock32.lib或winsock32.lib这样类似的名字.在vc++里,可以通过设置setting下的project菜单...单击连接选项卡,找到"Object/library modules".添加"wock32.lib"到列表中.
Or so I hear.
最后,在使用完了sockets库你必须调用WSACleanup() .具体细节看在线帮助.
做好这些.除了一些例外,指南中的其余的例子都可以正常使用.有一点,你不可以用close()来关闭一个socket,必须用closesocket()来代替.还有,select()只可以跟socket描述器搭配使用,不可以和文件描述器一起用.(就象0和stdin一样)-------????
有一个可供使用的socket类CSocket.要得到更多的信息查看编译器的帮助文件.需要winsock更多的信息,请阅读winsock FAQ2.
最后,我听说windows下没有fork()机制,糟糕的是,在我的例子里好几个地方用到了这个东西.你可以用POSIX 或其他的库文件来使这个函数正常工作.或者用CreateProcess()来代替.fork()没有参数,CreateProcess()用了480亿个参数.如果你用不着那么多东西.CreateThread() 更容易学会...不幸的是,关于多线程的讨论超出了本书的讨论范围.多说无益!
1.5. Note for Windows Programmers
我特别不喜欢windows,推荐大家试一下Linux, BSD, or Unix .虽然这样讲,但是你还是可以在windows下面使用网络编程的.
首先,先不用管我这里用到的系统头文件.你要用的就是:
#include <winsock.h>
等等!你还要在使用sockets库中的其他方法之前先调用WSAStartup().这段代码是这样使用的。
#include <winsock.h>
{
WSADATA wsaData; // if this doesn’t work
//WSAData wsaData; // then try this instead
if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) {
fprintf(stderr, "WSAStartup failed.\n");
exit(1);
}
你告诉编译器去连接winsock库,通常称做wsock32.lib或winsock32.lib这样类似的名字.在vc++里,可以通过设置setting下的project菜单...单击连接选项卡,找到"Object/library modules".添加"wock32.lib"到列表中.
Or so I hear.
最后,在使用完了sockets库你必须调用WSACleanup() .具体细节看在线帮助.
做好这些.除了一些例外,指南中的其余的例子都可以正常使用.有一点,你不可以用close()来关闭一个socket,必须用closesocket()来代替.还有,select()只可以跟socket描述器搭配使用,不可以和文件描述器一起用.(就象0和stdin一样)-------????
有一个可供使用的socket类CSocket.要得到更多的信息查看编译器的帮助文件.需要winsock更多的信息,请阅读winsock FAQ2.
最后,我听说windows下没有fork()机制,糟糕的是,在我的例子里好几个地方用到了这个东西.你可以用POSIX 或其他的库文件来使这个函数正常工作.或者用CreateProcess()来代替.fork()没有参数,CreateProcess()用了480亿个参数.如果你用不着那么多东西.CreateThread() 更容易学会...不幸的是,关于多线程的讨论超出了本书的讨论范围.多说无益!
loop's blog
浙公网安备 33010602011771号