Em Andamento

Console chat in C(repost)(repost)

C . Use only system classes (no extra libraries)

-

To implement a irc-like chat system with messages strings up to 140 chars

1. myserver - the server responsible for sendining each message to all clients

2. myhear - a client to connect to myserver with TCP/IP sockets and receive the messages and print them to [url removed, login to view]

3. mysay - a client to connect to myserver with TCP/IP and send a message read from standard input (up to 140 characters). Once

the message is send the program should terminate.

4. myspeak - a client program to receive user input. For every line given by the user the program mysay will transmit the message to myserver. myspeak with not have any TCP code, it will just invoke mysay

5. myrapid - a client program to RAPIDLY send messages to myserver (will be used for performance measurements).

Comments:

+myserver will be multi-threaded - One thread per socket (one for every connection of mysay and one for every connection of myhear). You can chose to use extra threads if you like

+myserver will open 2 sockets for incoming connections: port 3331 for mysay and port 3332 for myhear

+myserver should be killed when Control-C is pressed. A Message 'Are you sure you want to Quit? [Y/n]' should be displayed

+myserver: Pressing Control+\ (SIGQUIT) should display statistics :

Number of Active threads :

myhear threads:

mysay threads:

messages arrived:

messages transmitted :

Average arriving rate :

Average transmition rate:

+If mysay clients are connected, but no myhear clients exists messages will be discarded. Otherwise all receivers will receive

all messages.

+When an 'evil' mysay sends messages > 140 characters you should disconnect it

+When a hacker runs a myhear with capability of 20 messages / second, and then a mysay that sends 100 messages/second the buffer will become full ! In that case discard messages when more than 12000 messages (around two megabytes) are in the buffer

+myhear should die with Control-C

+messages will be ascii chars

+the IP Address of the server shall be given as an argument at run time (numerical , or using getaddrinfo)

Habilidades: Programação C, Engenharia, Linux, MySQL, PHP, Arquitetura de software, Teste de Software

Ver mais: thread programming, strings programming, strings standard, programming libraries, programming irc, numerical programming, multi thread programming, multi threaded programming, programming strings, argument programming, tcp sockets, socket server, die line, console c, c statistics, php server client socket, performance tcp client, socket programming server, tcp chat server client, tcp server threaded, print repost, php client statistics, send line message program, display repost, killed

Acerca do Empregador:
( 109 comentários ) United Kingdom

ID do Projeto: #3036638

Premiar a:

ovidiuv

See private message.

$76.5 USD em 6 dias
(281 Avaliações)
5.7

2 freelancers estão ofertando em média $57 para este trabalho

anant7vw

See private message.

$42.5 USD in 6 dias
(10 Comentários)
2.8
nullwarellc

See private message.

$72.25 USD in 6 dias
(3 Comentários)
0.9