How to encapsulate this ?


 
Thread Tools Search this Thread
Top Forums Programming How to encapsulate this ?
# 1  
Old 11-14-2006
How to encapsulate this ?

Hello !

I have a pretty question.I am working on a client-server chat aplication for Linux shell's.

When a user connect , is receives a window for the username . It has to enter the username, which will be used for future chat and private message ( + other option's ). I'm using socket's for network connection.

The point is , after a user is connect to server socket , the user has to enter a username . The problem here comes like that. Where does the chat server knew , if the username string is an ordinary string , used for chat , or the username string itself ?

I figure to do , some easy encaspulation.When the client connect , and receive username window , the username string is encapsulated with , let's say "***" at the end .

Let's say user !_30 is connected . First the client sends "!_30***" to server , the server dencapsulate those 3 '***' , and knows client username.

The problem here is that , when a user accidentaly send's "***" in main chat , whole sistem is doomed . The server sees "***" at the end .. of ( nothing ) and think's a new user is connected to the server.

How can I make this encapsulation/dencapsulation , transparent to send proces , not altering the string , and be doomed like up ..?

Any idea's , raw socket's ? Because the idea I mention is the only one that came , in that moment in my head .


Any ideas , is apreciate ! Cheer's ! Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread
Login or Register to Ask a Question
DRAWTERM(1)						      General Commands Manual						       DRAWTERM(1)

NAME
drawterm - connect to Plan 9 CPU servers from other operating systems SYNOPSIS
drawterm [-d] [-a authserver] [-c cpuserver] [-e encription_hash_algs] [-k keyspec] [-s secstoreserver] [-u username] [-C command args ...] DESCRIPTION
drawterm is not a Plan 9 program. It is a program that users of non-Plan 9 systems can use to establish graphical cpu(1) connections with Plan 9 CPU servers. Just as a real Plan 9 terminal does, a drawterm serves its local name space as well as some devices (the keyboard, mouse, and screen) to a remote CPU server, which mounts this name space on /mnt/term and starts a shell. Typically, either explicitly or via the profile, one uses the shell to start rio(1). By default, drawterm uses the CPU server $cpu or cpu, and the authentication server $auth or auth, OPTIONS
This program follows the syntax of the cpu(1) Plan 9 command. A summary of options is included below. -h Show summary of options. -a Specifies the authentication server to use. If not present uses the $auth environment variable, if present, or tries with a host name of auth. -c Specifies the cpu server to use. If not present uses the $cpu environment variable, if present, or tries with a host name of cpu. -u Specifies the username to authenticate with. If not present uses the $USER environment variable, if present, or asks interactively for an username. -s Specifies the secstore server to use. -C Specifies a command to be executed remotely. -e,-k Allow for selecting the hash algorithm and keys used, they have the same meaning as in cpu(1). SOURCE
In Plan 9 distributions, /sys/src/cmd/unix/drawterm. DIAGNOSTICS
Drawterm prints most diagnostics in its own window. BUGS
Although at first drawterm may seem like a Plan 9 terminal, in fact it is just a way to provide a CPU server with some terminal devices. The difference is important because one cannot run terminal-resident programs when using drawterm. The illusion can be improved by deli- cate adjustments in /usr/$user/lib/profile. Should import latest /dev/draw to allow resize of window Should copy 9term code and make console window a real 9term window instead. Should implement /dev/label. SEE ALSO
cpu(1), rio(1) in the Plan 9 documentation AUTHOR
drawterm was written by Russ Cox <rsc@swtch.com>. This manual page was written by Russ Cox <rsc@swtch.com>, with modifications by Martin Ferrari <tincho@debian.org> for the Debian project. October 16, 2008 DRAWTERM(1)