作一个tcp的服务程序,同时可能有大量的客户端连上来,希望分别记住各个socket
谁有数据过来,就读出来,放到一个请求队列--这些事情用一个线程完成
另外有一个结果队列,如果结果里包含了socket的编号,用一个线程专门:
取出来按编号找回原来发送者socket,发回给原来的客户端
还有一个就是处理线程(池),它取出请求队列里的一个请求,进行处理,
把处理结果放入结果队列
不知道有没有现成的框架?
网上只找到一些很。。。的:
http://fanqiang.chinaunix.net/a4/b7/20010508/112359.html
Linux网络编程--9. 服务器模型
http://linuxc.51.net 作者:hoyt (2001-05-08 11:23:59)
学习过《软件工程》吧.软件工程可是每一个程序员"必修"的课程啊.如果你没有学习过, 建议你去看一看. 在这一章里面,我们一起来从软件工程的角度学习网络编程的思想.在我们写程序之前, 我们都应该从软件工程的角度规划好我们的软件,这样我们开发软件的效率才会高. 在网络程序里面,一般的来说都是许多客户机对应一个服务器.为了处理客户机的请求, 对服务端的程序就提出了特殊的要求.我们学习一下目前最常用的服务器模型.  ......
作一个tcp的服务程序,同时可能有大量的客户端连上来,希望分别记住各个socket
谁有数据过来,就读出来,放到一个请求队列--这些事情用一个线程完成
另外有一个结果队列,如果结果里包含了socket的编号,用一个线程专门:
取出来按编号找回原来发送者socket,发回给原来的客户端
还有一个就是处理线程(池),它取出请求队列里的一个请求,进行处理,
把处理结果放入结果队列
不知道有没有现成的框架?
网上只找到一些很。。。的:
http://fanqiang.chinaunix.net/a4/b7/20010508/112359.html
Linux网络编程--9. 服务器模型
http://linuxc.51.net 作者:hoyt (2001-05-08 11:23:59)
学习过《软件工程》吧.软件工程可是每一个程序员"必修"的课程啊.如果你没有学习过, 建议你去看一看. 在这一章里面,我们一起来从软件工程的角度学习网络编程的思想.在我们写程序之前, 我们都应该从软件工程的角度规划好我们的软件,这样我们开发软件的效率才会高. 在网络程序里面,一般的来说都是许多客户机对应一个服务器.为了处理客户机的请求, 对服务端的程序就提出了特殊的要求.我们学习一下目前最常用的服务器模型.  ......
首先、我们看32位的整数:int 、unsigned int、long、unsigned long 。这些都是基本类型,没有unsigned关键字的是有符号的,反之是无符号的。还有比如DWORD、 UINT这些也只是写别名(typedef)而已。有符号整数值得注意的是什么范围内是正数,什么范围是负数。这样对于加减运算、比较运算等有很大帮助,否则很容易溢出或者比较错误。举个例子:
unsigned int loop = 5;
for ( ; loop >= 0; --loop )
{
.......
}
这样一个循环,稍微不注意。就认为它是成立的,其实他是一个死循环。这里会减到0,成立继续减。由于是无符号,将减成最大的32位无符号整数:0xffffffff. 之后继续减,因此为死循环。说到这里,又要提出一个问题了。我们需要记住常用的一些十六进制数,比如:0xffffffff, 0x80000000, 0x7fffffff等。那么:
1. 为什么需要记住这些?这些数有什么特点?在有符号和无符号32位整数里,它们分别代表什么?
其次、是16位整数,(short)占2字节。需要注意的跟上面32位整数差不多。
2. 根据第一个问题,大家可以猜猜16位甚至8位有符号、无符号整数需要记住常用的16进制数有哪些?
再次、是8位整数,也可以理解成字符。比如char、uns ......
首先、我们看32位的整数:int 、unsigned int、long、unsigned long 。这些都是基本类型,没有unsigned关键字的是有符号的,反之是无符号的。还有比如DWORD、 UINT这些也只是写别名(typedef)而已。有符号整数值得注意的是什么范围内是正数,什么范围是负数。这样对于加减运算、比较运算等有很大帮助,否则很容易溢出或者比较错误。举个例子:
unsigned int loop = 5;
for ( ; loop >= 0; --loop )
{
.......
}
这样一个循环,稍微不注意。就认为它是成立的,其实他是一个死循环。这里会减到0,成立继续减。由于是无符号,将减成最大的32位无符号整数:0xffffffff. 之后继续减,因此为死循环。说到这里,又要提出一个问题了。我们需要记住常用的一些十六进制数,比如:0xffffffff, 0x80000000, 0x7fffffff等。那么:
1. 为什么需要记住这些?这些数有什么特点?在有符号和无符号32位整数里,它们分别代表什么?
其次、是16位整数,(short)占2字节。需要注意的跟上面32位整数差不多。
2. 根据第一个问题,大家可以猜猜16位甚至8位有符号、无符号整数需要记住常用的16进制数有哪些?
再次、是8位整数,也可以理解成字符。比如char、uns ......
以下全文转载自http://www.keil.com/support/docs/697.htm Copyright © 2010 Keil™, An ARM® Company.
Information in this article applies to:
C51 Version 5 and Later
QUESTION
I wish to call a function written in C from my assembly code. How do I do it?
ANSWER
The easiest way to achieve this is to let the C compiler generate the correct assembly code for you.
Suppose you have a C function called 'foo' which takes a single unsigned char argument and returns an unsigned char value. In a new C file write a dummy function that calls 'foo'. For example:
#pragma src
extern unsigned char foo(unsigned char);
void dummy(void)
{
unsigned char x,y;
x = 1;
y = foo(x);
}
#pragma SRC directs the C compiler to generate assembly code when the file is compiled. The extension of the assembly file will be 'src'.
If you view the src file y ......
以下全文转载自http://www.keil.com/support/docs/1671.htm Copyright © 2010 Keil™, An ARM® Company.
Information in this article applies to:
C51 Version 6.02
µVision Version 2.06
QUESTION
Do you have any examples of how to mix C and assembly?
ANSWER
The following example program shows how to mix C and assembly in your 8051 programs.
This example starts with a MAIN C function which calls a routine in assembly which then calls a C function.
The MAIN C module appears as follows:
extern void a_func (void);
void main (void)
{
a_func ();
}
The function a_func is an assembly routine:
NAME A_FUNC
?PR?a_func?A_FUNC SEGMENT CODE
EXTRN CODE (c_func)
PUBLIC a_func
RSEG ?PR?a_func?A_FUNC
a_func:
USING 0
LCALL c_func
RET
END
Note that this assembly routine calls ......
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。
1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段
2、http://www.hotscripts.com/category/c-cpp/scripts-programs/ Hotscripts --提供数以百计的C和C++脚本和程序。所有程序都分为不同的类别。
3、http://www.planetsourcecode.com/vb/default.asp?lngWId=3 --超过万行C和C++免费的源代码
4、http://freshmeat.net/browse/164/ --超过9000个C编写的项目。
5、http://www.daniweb.com/code/c.html --DANIWEB提供的实用代码段 。
6、http://www.programmersheaven.com/tags/C/ --programmersheaven.com上的C编程资源。
7、http://www.ddj.com/code/ddj.html --Dr. Dobb’s Journal的源代码。
8、http://www.cprogramming.com/cgi-bin/source/source.cgi --C和C + +编程资源。
9、http://www.codecogs.com/ --CodeCogs是一项协作的开放源码库,C/C++的数值方 ......
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。
1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段
2、http://www.hotscripts.com/category/c-cpp/scripts-programs/ Hotscripts --提供数以百计的C和C++脚本和程序。所有程序都分为不同的类别。
3、http://www.planetsourcecode.com/vb/default.asp?lngWId=3 --超过万行C和C++免费的源代码
4、http://freshmeat.net/browse/164/ --超过9000个C编写的项目。
5、http://www.daniweb.com/code/c.html --DANIWEB提供的实用代码段 。
6、http://www.programmersheaven.com/tags/C/ --programmersheaven.com上的C编程资源。
7、http://www.ddj.com/code/ddj.html --Dr. Dobb’s Journal的源代码。
8、http://www.cprogramming.com/cgi-bin/source/source.cgi --C和C + +编程资源。
9、http://www.codecogs.com/ --CodeCogs是一项协作的开放源码库,C/C++的数值方 ......
以下全文转载自http://www.keil.com/support/docs/50.htm Copyright © 2010 Keil™, An ARM® Company.
Information in this article applies to:
C51 All Versions
QUESTION
In the C51 compiler manual, there is example of an assembly module calling a C function. Is there any example of a C program calling an assembly routine?
ANSWER
There are no examples in the book, but it is easy to create your own. The asm routine must know how parameters are passed, values returned, and the naming conventions of segments. The steps you must follow to create an example are outlined below:
Write a simple function in C that passes parameters and returns values the way you want your assembly routine to.
Use the SRC directive (#PRAGMA SRC at the top of the file) so that the C compiler generates a .SRC file instead of a .OBJ ......