计算机网络的作业,要求写一个聊天软件,不限制语言,也没说是几个人聊,不会python,也不会php,求闲的没事的程序员阁阁帮我指点一下,怎样用bash写一个聊天室~~~
我只会bash shell,所以就想用bash写,我的思路是,用nc这个流弊工具建立socket,进行通讯,然而nc只能一对一的建立连接,所以我就想了个怪招:
#监听/发送数据
{while true
do
DATA=date +"%D %H:%M:%S"
nc -lp $PORT
done
} &
发送数据我还不知道要怎么搞,求指教!原来想着是echo $MSG |tee -a $DB |nc -lp $PORT
,但是这样的话就不能一直监听某个端口,好尴尬。
echo $MSG | nc $Server_IP $Server_PORT #向服务器发送数据
nc $Server_IP $Server_PORT -w 1 | cat >> msg #从服务器接收数据
这里的问题是,timeout为1的话会有延迟,很不舒服,关于格式化msg我再仔细想想可以解决。
关于认证,我是想着,当Client连接的时候,发送用户名和密码在Server上认证,成功后在Server上随机生成一串字符发给Client,通过这个字符session认证客户端,客户端关闭后session即消失,不可逆。
一个聊天室一个端口号(是不是太搓了T_T)但是我想不出别的方法了QAQ
如果bash干不了这个活也请大牛指出来,断了我这条心思,谢谢!
1
Septembers 2015-07-03 02:18:16 +08:00
|
2
des 2015-07-03 07:06:50 +08:00
用 ncat -c 或者 ncat -e
|
4
Orzzzz OP user@server$ ncat -lk --chat
user@client$ ncat server_ip 太年轻- - |