请问如何在纯C++中实现多线程socket编程,而不使用Vc来实现
我的意思是不使用vc中的线程类派生
因为我想尽量的编写一个程序和操作系统关系不大的socket程序。
C++程序可以在window和unix下运行。
要是派生于mfc类的话,我想可能就无法在unix下运行。
我想做个可以在window 和unix下运行的socket程序。
在这里先谢过了。
我的意思是不使用vc中的线程类派生
因为我想尽量的编写一个程序和操作系统关系不大的socket程序。
C++程序可以在window和unix下运行。
要是派生于mfc类的话,我想可能就无法在unix下运行。
我想做个可以在window 和unix下运行的socket程序。
在这里先谢过了。
http://www.lowtek.com/sockets/
但如果你使用的是BSD Socket 比如说socket,recv之类的函数,在程序中加一些宏能够解决。
线程上有点麻烦,最好自己封装一个线程类,不用很复杂,只要线程创建成功了,后面做的事都是相同的,关键是把Win Thread和pthread的不同之处掩盖住就行。线程同步用Semaphore和Critical。可用于Windows,linux, Unix
首先头文件句不一样
定义的socket类型也不一样,一个是socket,一个是int
另外还有一些差异,比如WSAGETLASTERROR,unxi下是errorno
另外启线程序和unxi下启进程的函数也不一样
但还是可以实现跨平台的,不过还是比较麻烦
我推荐用C++,因为现在大部分编译器都支持C++了,这样可以充分利用类的封装特性,能大大简化window和unix/linux之间的移植
java批评c++的一个方面就是:没有多线程。
java有。std c++没有。