socket interface full report
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
computer science technology
Active In SP

Posts: 740
Joined: Jan 2010
24-01-2010, 03:31 PM

.doc   THE SOCKET INTERFACE full report.doc (Size: 86 KB / Downloads: 100)

We must have an interface between the application programs and the protocol software in order to use network facilities. My seminar and presentation is on a model of an interface between application programs and TCP/IP protocols. The standard of TCP/IP protocol do not specify exactly how application programs interact with the protocol software. Thus the interface architecture is not standardized; its design lies outside of scope of the protocol suite. It is further should be noticed that it is inappropriate to tie the protocols to a particular interface because no single interface architecture works well on all systems. In particular, because protocol software resides in a computerâ„¢s operating system, interface details depend on the operating system.
In spite of lack of standards, a programmer must know about the such interfaces to be able to use TCP/IP. Although I have chosen UNIX operating system in order to explain the model, it has widely accepted and is used in many systems.
One thing more, the operations that I will list here, will have no standard in any sense.
2.UNIX I/O Paradigm And Network I/O:
Developed in the late 1960s and early 1970s, Unix was originally designed as a timesharing system for single processor computers. It is a process-oriented operating system in which each application program executes as a user level process. An application program interacts with the operating system by making system calls. From the programmerâ„¢s point of view, system calls look and behave exactly like other procedure calls. They take arguments and return one or more results. Arguments can be values or pointers to objects in the application program.
The UNIX input-output primitives follow a paradigm sometimes referred to as open-read-write-close. Before a user process can perform I/O operations, it calls open to specify the file or device to be used and obtains permission. The call to open returns a small integer file descriptor that process uses when performing I/O operations on the opened file or device. Once an object has been opened, the user process make one or more calls to read and write to transfer data. Read transfer the into the process; write transfers data from the user process to the file or device. Both read and write take three arguments that specify the file descriptor to use, the address of a buffer, and the number of bytes to transfer. After all transfer operations are complete, the user process calls close to inform the operating system that it has finished using the object. The operating system automatically closes all open descriptors if a process terminates without calling close.
Originally, UNIX designers cast all I/O operations in the open-read-write-close paradigm. The scheme included I/O for character-oriented devices like keyboards and block-oriented devices like disks and files. An early implementation of TCP/IP under UNIX also used the open-read-write-close paradigm with special file name:-
The group adding network protocols to UNIX decided that because network protocols are more complex than conventional I/O devices, interactions between user processes and network protocols must be more complex than interactions between user processes and conventional I/O facilities. In particular, the protocol interface must allow programmers to create both server code that awaits connections passively as well as client code that forms connections actively. Furthermore, application programs sending datagrams may wish to specify the destination address along with each datagram instead of binding destinations at the time they call open. To handle all these cases, the designers chose to abandon the traditional UNIX open-read-write-close paradigm, and added several new operating system calls as well as new library routines. Adding network protocols to UNIX increased the complexity of I/O interface substantially.
A socket is defined as an end point for communication .A pair of processes communicating over a network employs a pair of sockets-one for each process. A socket is made up of an IP address concatenated with a port number. In general sockets use client-server architecture. The waits for incoming client requests by listening to a specified port. Once a request is received, the server accepts a connection from the client socket to complete the connection.

Host A Web Server S
( (

Communicating using sockets
Servers implementing specific services (such as telnet, ftp and http ) listen to well known ports. For example a telnet server listens to port number 23, a ftp server listens to 21 and a web server listens to port 80. Port numbers below 256 are considered well known; we can use them to implement standard services.
When a client process initiates a request for a connection, it is assigned a port by the host computer. This port is some arbitrary number greater than 256. For example, if a client on host A with IP addresses wishes to establish a connection with a web server S (which is listening on port 80) at address, host A may be assigned port 1024.The will consist of a pair of sockets : ( on host A, and ( on the web server.
4.Socket Abstraction:
The basis for network I/O in UNIX centers on an abstraction i.e. socket. We can consider socket as a generalization of the UNIX file access mechanism that provides an endpoint for communication. As with the file access, application program request the operating system to create a socket when one is needed. The system returns a small integer that the application program uses to reference the newly created socket. The application can choose to supply a destination address each time it uses the socket, or it can choose to bind the destination address to the socket and avoid specifying destination repeatedly.
Socket performs exactly like UNIX files or devices, so they can be used with traditional operations like read and write. For example, once an application program create a socket and creates a TCP connection from the socket to a foreign destination, the program can use write to send a stream of data across the connection. To make it possible to use primitives like reading and writing with both files and sockets, the operating system allocates socket descriptors and file descriptors from the same set of integers and makes sure that if a given integer has been allocated as file descriptor, it will not also be allocated as a socket descriptor.
5.Creating A Socket:
The Socket system call creates sockets on demand. It takes three integer arguments and returns an integer result:
result=socket( pf, type, protocol)
Argument pf specifies the protocol family to be used with the socket. That is ,it specifies how to interpret addresses when they are supplied. Current families include the TCP/IP internet (PF_INET),Xerox Corporation PUP internet (PF_PUP),Apple Computer Incorporated Appletalk network (PF_APPLETALK)and Unix file system (PF_UNIX) as well as many others.
Argument type specifies the type of communication desired. Possible types include reliable stream delivery services (SOCK_STREAM) and connectionless datagram delivery service (SOCK_DGRAM) , as well as a raw type (SOCK_RAW) that allows privileged programs to access low level protocols or network interfaces. Two additional types have been planned but not implemented.
Although the general approach of separating protocols families and types may seem sufficient to handle all cases easily, it does not. First, it may be that a given family of protocols does not support one or more of the possible service types. For example, the UNIX family has an interprocess communication mechanism called a pipe that uses a reliable stream delivery service, but has no mechanism for sequenced packet delivery. Second, some protocol families have multiple protocols that support one type of service. To accommodate multiple protocols within a family, the socket call has a third argument that can be used to select a specific protocol. To use the third argument, the programmer must know the protocol family well enough to know the of service each protocol supplies.
6.Socket Inheritance And Termination:
UNIX uses the fork and exec system calls to start new application programs. It is a two step procedure .In the first step , fork creates a separate copy of the currently executing application program. In the second step, the new copy replaces itself with the desired application program. When a program calls fork, the newly created copy inherits access to all open sockets just as it inherits access to all open files. When a program calls exec, the new application retains access to all open sockets. Internally, the operating system keeps a reference count associated with each socket, so it knows how many application programs have access to it.
Both the old and new processes have the same access rights to existing sockets, and both can access the sockets. Thus it is responsibility of programmer to ensure that the two processes use the shared socket meaningfully.
When a process finishes using a socket it calls close. Close has the form:
Where argument socket specifies the descriptor of the socket to be closed. When a process terminates for any reason, the system closes all sockets that remain open. Internally a call to close decrements the reference count for a socket and destroy the socket if count reaches zero.
7.Specifying A Local Address:
Initially, a socket is created without any association to local or destination addresses. For the TCP/IP protocol, this means no local protocol port number has been assigned and no destination port number or IP Address has been specified. In many cases, application programs do not care about the local address they use and are willing to allow the protocol software to choose one for them. However, server processes that operate at a well-known port number must be able to specify that port to the system. Once a socket has been created, a server uses the bind system call to establish a local address for it. Bind has the following form:
bind (socket, localaddr, addrlen )
Argument socket is the integer descriptor of the socket to be bound . Argument localaddr is a structure that specifies the local address to which the socket should be bound, and argument addrlen is an integer that specifies the length of the address measured in bytes. Instead of giving merely address as a sequence of bytes, the designers chose to use a structure for addresses. The structure generally named sockaddr, begins with a 16 bit ADDRESS FAMILY field that identifies the protocol suite. To which the address belongs. It is followed by an address of up to 14 octets. The value in the ADDRESS FAMILY field determines the format of the remaining address octets. For example, the value 2 in the ADDRESS FAMILY fields means the remaining address octets contain a TCP/IP address.
0 16 31





The sockadddr structure when passing a TCP/IP address to the socket interface.
8.Connecting Sockets To Destination Addresses:
Initially, a socket is created in the unconnected state, which means that the socket is not associated with any foreign destnation. The system call connect binds a permanent destination to a socket, placing it in the connected state. An application program must call connect to establish a connection before it can transfer data through a reliable stream socket. Sockets used with connectionless datagram services need not be connected before they are used, but doing so makes it possible to transfer data without specifying the destination each time.
The connect system call has the form :
connect( socket, destaddr, addrlen)
Argument socket is the integer descriptor of the socket to connect. Argument destaddr is a socket address structure that specifies the destination address to which socket should be bound. Argument addrlen specifies the length of destination address measured in bytes.
9.Sendig Data Through A Socket:
Once an application program has established a socket, it can use the socket to transmit data. There are some possible operating system calls for example: send, sendto and write. Send and write only work with connected sockets because they do not allow the caller to specify a destination address. The difference between the two are minor. Write takes three arguments:
write( socket, buffer, length)
Argument socket contains an integer socket descriptor. Argument buffer contains the address of data to be sent, and argument length specifies the number of bytes to be sent.
The send system call has the form :
send( socket, message, length, flags)
Where argument socket specifies the socket in use, argument message gives the address of data to be sent, argument length specifies the number of bytes to be sent, and argument flags control the transmission.

System call sendto allows the caller to send a message through an unconnected socket because they require caller to specify a destination. Sendto, which takes the destination address as an argument, has the form:
sendto( socket, message, length, flags, destaddr, addrlen)
The first four arguments are exactly the same as those used with the send system call. The final two arguments specify a destination address and give the length of that address.
10.Receiving Data Through A Socket:
Analogous to three different output operations, UNIX offers three system calls that a process can use to receive data through a socket: read , recv and recvfrom. The conventional UNIX input operation , read can only be used with connected socket. It has form:
read(descriptor, buffer, length)
Where descriptor gives the integer descriptor of a socket or file descriptor from which to read data, buffer specifies the address in memory at which to store data, and length specifies the maximum number of bytes to read.
System call recv to receive data from a connected socket. It has form:
recv( socket, buffer, length, flags)
Argument socket specifies a socket descriptor from which data should be received. Argument buffer specifies the address in memory into which the message should be placed, and argument length specifies the length of buffer area. Finally argument flags allows caller to control reception.
The system call recvfrom allows the caller to specify input from an unconnected socket. It includes additional arguments that allow the caller to specify where to record the senderâ„¢s address. The form is:
recvfrom( socket, buffer, length, flags, fromaddr, addrlen)
Two additional arguments fromaddr and addrlen, are pointers to a socket address structure and an integer.
11.Obtaining Local And Remote Socket addresses:
Newly created processes inherit the set of open sockets from the process that created them. Sometimes, a newly created process needs to determine the destination address to which a socket connects. A process may also wish to determine the local address of a socket. Two system calls provide such information: getpeername and getsockname. A process calls getpeername to determine the address of the peer to which a socket connects. It has the form:
getpeername( socket, destaddr, addrlen)
Argument socket specifies the socket for which the address is desired. Argument destaddr is a pointer to structure that will receive socket address. Finally, argument addrlen is a pointer to an integer that will receive the length of the address. Getpeername only works with connected sockets.
System call getsockname returns the local address associated with a socket. It has the form:

getsockname( socket, localaddr, addrlen)
12.Specifying A Queue Length For A Server:
The server creates a socket, bind it to a well known protocol port, and wait for requests. If the server uses a reliable stream delivery, or if computing a response takes non trivial amount of time, it may happen that a new request arrives before the server finishes to responding to an old request. To avoid having protocol reject or discard incoming requests, a server must tell the underlying protocol software that it wishes to have such requests enqueued until it has time to process them.
The system call listen allows servers to prepare a socket for incoming connections. Listen puts the sockets in a passive mode ready to accept connection when the server invokes listen it also informs the operating system that the protocol software should enqueue multiple simultaneous requests that arrive at the socket. The form is:
listen (socket, qlength)
13.How A Server Accepts Connections:
A server process uses the system call socket, bind, and listen to create a socket, bind it to a well known protocol port, and specify a queue length for connection requests. The call to bind associates the socket with a well known protocol port, but that the socket is not connected to a specific foreign destination. In fact the foreign destination must specify the wild card, allowing the socket to receive connection requests from an arbitrary client.
Once the socket has been established, the server needs to wait for a connection. To do so it uses the system call accept. A call to accept blocks until a connection request arrives. It has the form:
newsock=accept(socket, addr, addrlen)
Argument socket specifies the descriptor of the socket on which to wait. Argument addr is a pointer to a structure of type sockaddr, and addrlen is pointer to an integer. When the request arrives , the system fills in argument addr with the address of the client that has placed the request and set addrlen to the length of the address. Finally , the system creates a new sockets that has its destination connected to the requesting client, and returns the new socket descriptor to the caller. The original socket still has a wild card foreign destination and it still remains open. Thus , the master server can continue to accept additional requests at the original sockets.
The server can either handle requests, iteratively or concurrently . In the iterative approach, the server handles the requests itself, closes the new socket, and then calls accept to obtain the next connection requests. In the concurrent approach, after the call to accepts returns, the master server creates a slave to handle the request (in UNIX terminology , it forks a child process to handle the request). The slave process inherits a copy of the new socket, so it can proceed to service the request. When it finishes, the slave closes the socket and terminates. The original (master)
Server process closes its copy of the new socket after starting the slave. It then calls accept to obtain the next connection request.
The concurrent design for servers may seem confusing because multiple processes will be using the same local protocol port number. The key to understanding the machanism lies in the way underlying protocols treat protocol ports. In TCP a pair of end point define a connection. Thus , it does not matter how many process use a given local protocol port number as long as they connrct to different destination. In the case of a concurrent server , there is one process per client and one additional process that accepts connections. The socket the master server process uses has wild card for the foreign destination, allowing it to connect with an arbitrary foreign site. Each remaining process has a specific foreign destination . when a TCP segment arrives, it will be sent to the socket connected to the segmentâ„¢s source. If no such socket exits, the segment will be sent to the socket that has a wild card for its foreign destination. Furthermore , because the socket with a wild card foreign destination does not have an open connection, it will only honour TCP segments that request a new connection.
14.Servers That Handle Multiple Services:
The UNIX interface provides another interesting possibilities for server design because it allows a single process to wait for connections on multiple sockets. The system call that makes the design possible is called select, and it applies to I/O in general, not just to communication over sockets. Select has the form:
nready=select(ndesc, indesc, outdesc, excdesc, timeout)
In general , a call to select blocks waiting for one of a set of file descriptor to become ready. Argument ndesc specifies how many descriptor should be examined( the descriptors checked are always 0 through ndesc-1). Argument indesc is a pointer to bit mask that specifies the file descriptor to check for input, argument outdesc is a pointer to a bit mask that specifies the file descriptor to check for output, and argument excdesc is a pointer to a bit mask that specifies the file descriptors to check for exception conditions. Finally, if argument timeout is non zero, if is the address of an integer that specifies how long to wait for a connection before returning to caller. A zero value for time out forces the call to block until a descriptor becomes ready. Because the time out arument contains the address of the timeout integer and not the integer itself, a process can request zero delay by passing the address of an integer that contains zero( i.e. a process call poll to see if I/O is ready).
A call to select returns the number of descriptor from the specified set that are ready for I/O. It also changes the bit mask specified by indesc, outdesc and excdesc to inform the application which of the selected file descriptors are ready. Thus, before calling select, the caller must turn on those bits that correspond to descriptors to be checked. Following the call, all bit that remain set to 1 correspond to a ready file descriptor.
To communicate over more than one socket at a time, a process first creates all the sockets it needs and then uses select to determine which of them becomes ready for I/O first. Once it finds a socket has become ready, the process uses the input or output procedures define above to communicate.
15. Obtaining And Setting The Internal Host Domain:
The operating system maintains a string that specifies the naming domain to which a machine belong. When a site obtains authority for part of the domain name space , it invents a string that identifies its piece of the space and uses that string as the name of the damain. For example, machine in the domain
have names taken from the Arthurian legend. Thus , one finds machines named merlin, Arthur , guenevere, and lancelot. The domain itself has been named Camelot, so the operating system on each hosts in the group must be informed that it resides in the Camelot domain. To do so, a privileged process uses system call setdomainname, which has the form:
setdomainname(name, length)
argument name gives the address of an array of bytes that contain the name of domain, and argument length is an integer that gives the length of the name.
User processes call getdomainname to retrieve the name of the domain from the system. It has the form:
getdomainname(name, length)
Argument name specifies the address of an array where the name should be stored, and argument length is an integer that specifies the length of the array.
16. Obtaining Information About Hosts:
Library procedures exist that allow a process to retrieve information about a host given either its domain name or its IP address. Function gethostbyname takes a domain name and returns a pointer to a structure of information for that host. A call takes the form:
Argument namestr is pointer to a character string that contains a domain name for the host. The value returned, ptr, points to a structure that contains the following information: the official host name, a list of aliases thathave been registered for the host, the host address type, the address length, and a list of one or more addresses for the host. More details can be found in the UNIX programmerâ„¢s Manual.
Function gethostbyaddr produces the same information as gethostbyname. The difference between the two is that gethostbyaddr accepts a host address as an argument:
ptr=gethostbyaddr(addr,len, type)
Argument addr is a pointer to a sequence of bytes that contain a host address. Argument len is an integer that gives the length of address, and argument type is an integer that specifies the type of address.
17. Obtaining Information About Networks:
Hosts running UNIX either use the domain name system or keep a simple database of networks in their internet. The network library routines include five routines that allow a process to access the network database. Procedure getnetbyname obtains and formats the contents of an entry from the database given the domain name of a network. A call has the form:
Where argument name is a pointer to a string that contains the name of the network for which information is desired. The value returned is a pointer to a structure that contains fields for the official name of the network, a list of registered aliases, an integer address type and an 32 bit network address(i.e. an IP address with the host portion set to zero.)
A process calls library routine getnetbyaddr when it needs to search for information about a network given its address. The call has the form:
ptr=getnetbyaddr(netaddr, addrtype)
Argument netaddr is a 32 bit network address, and argument addrtype is an integer that specifies the type of netaddr.
18. Obtaining Information About Protocols:
Each protocol has an official name, registered aliases, and an official protocol number. Procedure getprotobyname allows a caller to obtain information about a protocol given its name:
Argument name is a pointer to an string that contains the name of protocol about which information is desired. The function returns a pointer to a structure that has fields for the official protocol name, a list of aliases and a unique integer value assigned to the protocol.
Procedure getprotobynumber allows a process to search for protocol information using protocol number as a key.
19. Obtaining Information About Network Services:
Procedure getservbyname maps a named service onto a port number:
ptr=getservbyname(name, proto)
Argument name specifies the address of a string that contains the name of desired service, and integer argument proto specifies the protocol with which the service is to be used.the value returned is a pointer to a structure that contains fields for the name of services, a list of aliases, an identification of the protocol with which the service is used, and an integer protocol port number assigned for that service.
20. Summary:
Because TCP/IP protocol software resides inside an operating system, the exact interface between an application program and TCP/IP protocols depends on the details of the operating system; it not specified by TCP/IP protocol standard. We examined the socket interface originally designed for UNIX, and saw that it adopted the UNIX open-read-write-close paradigm. To use TCP/IP a must create a socket, bind addresses to it, accepts incoming connectins, and then communicate using the read or write primitives. Finally , when finished using a socket , the program must close it. In addition to socket abstraction and system calls that operate on sockets, UNIX includes library routines that have programs create and manipulate IP addresses, convert integers between local machine format and network standard byte order, an search for information such as network addresses.
The socket interface has become popular and is widely supported by many vendors. Vendors who do not offer socket facilities in their operating system often provides a socket library that makes it possible for program to write applications using socket calls even though the underlying operating system uses a different set of system calls.
21.A Java Based Socket:
We now see a Java class that implements time-of-day server . The operation allows client to request the time of day from the server. The server listens to port 5155, although the port could be any arbitrary number greater than 256. When a connection is received , the server returns the time of the day to the client.
The Server:
The server create a ServerSocket that specifies it will listen to port 5155. It then begins listening to the port with the accept method . The server blocks on the accept method waiting for a client to request a connection.
When a connection request is received , accept returns a socket that the server can use to communicate with the client.
The detail illustrating how the server communicates with socket are as follows. The server first establishes a PrintWriter object that it will use to communicate with the client. A PrintWriter object allows the server to write to the socket using the normal print and println methods for output. The server process sends the time of day to the client calling the method println. Once it has written the time of day to the socket, the server closes the socket to the client and resumes listening for more request.
public class Server
public static void main( String args[])
Socket Client =null;
PrintWriter pout=null;
ServerSocket sock=null;
sock= new ServerSocket(5155);
//now listen for connections
//we have a connection
pout= new PrintWriter ( client.getOutputStream(), true);
//write the data to the socket
pout.println(new java.util.Date().toString());
The Client:
A client communicates with the server by creating a socket and connecting to the port the server is listening. We implement such a client in the java program. The client create a socket and requests a connection with the server at IP address on port 5155. Once the connection is made, the client can read from the socket using normal stream I/O statements. After it has received the time of day from server , the client closes the socket and exits.
The IP address is special IP address known as local host. When a computer refers to IP address it is referring to itself. This mechanism allows the client and server on the same host to communicate using the TCP/IP protocol. The IP address could be replaced with the IP address of another host running the time-of-day server.
public class Client {
public static void main(String agrs[])
InputStream in= null;
BufferedReader bin=null;
Socket sock=null;
//make connection to socket
sock=new Socket(,5155);
bin= new BufferedReader( new InputStreamReader(in));
String line;
1.Internetworking with TCP/IP “Douglas E. Comer- PHI
2.Computer Networks “ Andrew S. Tanenbaum-PHI
3.Operating System Concepts-Silberschatz,Galvin,gagne-John Wiley & Sons, Inc.
4.Unix System-Das-TMH
Internet Resource:

Table of Contents
Certificate Page No.
2.UNIX I/O Paradigm And Network I/O¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦.1
4.Socket Abstraction¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦.4
5.Creating A Socket¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦..4
6.Socket Inheritance And Termination¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦.¦¦5
7.Specifying A Local Address¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦..6
8.Connecting Sockets To Destination Addresses¦¦¦¦¦¦¦¦¦¦¦.¦7
9.Sendig Data Through A Socket¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦.8
10.Receiving Data Through A Socket¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦.9
11.Obtaining Local And Remote Socket addresses¦¦¦¦¦¦¦¦¦¦.10
12.Specifying A Queue Length For A Server¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦10
13.How A Server Accepts Connections¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦.11
14.Servers That Handle Multiple Services¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦.¦13
15.Obtaining And Setting The Internal Host Domain¦¦¦¦¦¦¦.14
16.Obtaining Information About Hosts¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦.15
17.Obtaining Information About Networks¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦.16
18.Obtaining Information About Protocols¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦.¦17
19.Obtaining Information About Network Services¦¦¦¦¦¦¦¦¦.17
21.A Java Based Socket¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦.18
Use Search at wisely To Get Information About Project Topic and Seminar ideas with report/source code along pdf and ppt presenaion

Important Note..!

If you are not satisfied with above reply ,..Please


So that we will collect data for you and will made reply to the request....OR try below "QUICK REPLY" box to add a reply to this page

Quick Reply
Type your reply to this message here.

Image Verification
Please enter the text contained within the image into the text box below it. This process is used to prevent automated spam bots.
Image Verification
(case insensitive)

Possibly Related Threads...
Thread Author Replies Views Last Post
  air muscles full report project report tiger 7 10,648 25-09-2013, 09:32 AM
Last Post: seminar projects maker
  INTELLIGENT WIRELESS VIDEO CAMERA USING COMPUTER full report computer science technology 9 15,677 04-03-2013, 10:11 AM
Last Post: seminar tips
  automatic vehicle locator full report computer science technology 5 6,666 25-01-2013, 01:01 PM
Last Post: Guest
  programmable logic controller plc full report computer science technology 16 28,456 07-12-2012, 11:42 AM
Last Post: seminar tips
  Biomedical Instrumentation full report seminar tips 0 603 13-11-2012, 06:06 PM
Last Post: seminar tips
  FUZZY LOGIC IN EMBEDDED SYSTEMS full report computer science technology 2 4,447 03-10-2012, 11:49 AM
Last Post: seminar tips
  PH Control Technique using Fuzzy Logic full report computer science technology 5 8,150 28-08-2012, 04:30 PM
Last Post: Guest
  INSTRUMENTATION CONTROL full report project topics 4 8,056 11-02-2012, 12:00 PM
Last Post: seminar addict
  SPEECH RECOGNITION USING DSP full report computer science technology 18 18,380 16-01-2012, 12:04 PM
Last Post: seminar addict
  Welding Processes full report seminar class 1 7,840 30-07-2011, 02:17 PM
Last Post: smart paper boy