LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: 冷海儿

socket问题

[复制链接]
发表于 2006-4-30 11:46:08 | 显示全部楼层
一旦服务器和客服端联接上,肯定可以互相通信n多次,直到网络断开。
回复 支持 反对

使用道具 举报

发表于 2006-4-30 14:33:40 | 显示全部楼层
Post by 冷海儿
在Linux下,用c语言写了一个服务器,然后使用java的一个applet,就是jta26作为客户端,结果服务器向客户端发送的数据可以正常接收并且显示,但是,客户端发的数据,服务器端只能收到一个,比如输入 hello 服务器只显示h 并且显示收到1个字符,这是为什么啊??

输入hello是通过命令行手工做的呢,还是在源码里hard-coded的呢?

如果是前者,就很可能在服务器端只收到一个'h'字符,因为有些客户机(如telnet, ssh client)就是收到数据马上发的,你刚键入h的时候,数据就发出了。而且你的recv没有循环,收到一个packet就return了,收到一个字符不奇怪。当然这只是我的推测,因为你提供的信息也就那么多。
回复 支持 反对

使用道具 举报

发表于 2006-4-30 14:38:55 | 显示全部楼层
Post by muxingren
一旦服务器和客服端联接上,肯定可以互相通信n多次,直到网络断开。


你用于灌水的browser也是基于tcp/ip的,做browser的人把这个browser做好,你当然可以用它“互相通信n多次”;而底层n*n次的tcp/ip system call你看不到,你看到的只是一个browser。当你自己编程序的时候,一切都掌握在你手里,可不是想当然的“互相通信n多次”。
回复 支持 反对

使用道具 举报

发表于 2006-4-30 14:51:19 | 显示全部楼层
Post by Illidan
你用于灌水的browser也是基于tcp/ip的,做browser的人把这个browser做好,你当然可以用它“互相通信n多次”;而底层n*n次的tcp/ip system call你看不到,你看到的只是一个browser。当你自己编程序的时候,一切都掌握在你手里,可不是想当然的“互相通信n多次”。
其实我说的就是掌握在自己手里,只要网络正常,你可以任意通讯,底层的系统调用就是保证你的通讯的,但是主要掌握在你对网络知识的了解程度,写一个健壮的网络程序可不容易哦。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表