[complement-svn] SF.net SVN: complement: [1883] trunk/complement/explore/app/SMTP-tools/ smtp_serve
Status: Pre-Alpha
Brought to you by:
complement
From: <oke...@us...> - 2008-05-26 09:20:48
|
Revision: 1883 http://complement.svn.sourceforge.net/complement/?rev=1883&view=rev Author: okechina Date: 2008-05-26 02:20:46 -0700 (Mon, 26 May 2008) Log Message: ----------- Multi-thread realization of TCP-server. A separate thread is created for each client. Modified Paths: -------------- trunk/complement/explore/app/SMTP-tools/smtp_server_ut/socket/ECHO_server.cc trunk/complement/explore/app/SMTP-tools/smtp_server_ut/socket/Makefile Modified: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/socket/ECHO_server.cc =================================================================== --- trunk/complement/explore/app/SMTP-tools/smtp_server_ut/socket/ECHO_server.cc 2008-05-25 12:14:17 UTC (rev 1882) +++ trunk/complement/explore/app/SMTP-tools/smtp_server_ut/socket/ECHO_server.cc 2008-05-26 09:20:46 UTC (rev 1883) @@ -8,30 +8,42 @@ #include <stdio.h> #include <iostream> +#include <pthread.h> + #include "socket.h" const int bufsize = 4096; +char buf[bufsize]; +int TCPecho (int fd){ + int cc; + while ( cc = read( fd, buf, sizeof( buf ) ) ) { + write( fd, buf, cc ); + } + close(fd); + return 0; +} + int main() { struct sockaddr_in fsin; - + char *service = "3000"; // char *transport = "udp"; char *transport = "tcp"; int qlen = 0; - char buf[bufsize]; + unsigned int alen; + pthread_t th; + sct::sock s ( service, transport, qlen ); - unsigned int alen; + if (transport == "tcp") { - alen = sizeof( fsin ); - int sc = accept( s.getDescr(), (struct sockaddr *)&fsin, &alen); - while (1){ - int cc = read( sc, buf, sizeof( buf ) ); - write( sc, buf, cc ); + alen = sizeof( fsin ); + int sc = accept( s.getDescr(), (struct sockaddr *)&fsin, &alen); + pthread_create( &th, 0, ( void * (*)( void *))TCPecho, (void *)sc ); } } else { while (1){ Modified: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/socket/Makefile =================================================================== --- trunk/complement/explore/app/SMTP-tools/smtp_server_ut/socket/Makefile 2008-05-25 12:14:17 UTC (rev 1882) +++ trunk/complement/explore/app/SMTP-tools/smtp_server_ut/socket/Makefile 2008-05-26 09:20:46 UTC (rev 1883) @@ -1,7 +1,7 @@ all: server client server: server.o socket.o - gcc -g -o server server.o socket.o -lstdc++ + gcc -g -o server server.o socket.o -lstdc++ -lpthread server.o: ECHO_server.cc socket.h gcc -g -c ECHO_server.cc -o server.o client: client.o socket.o This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |