JAVA 线程问题
我想实现一个数据发送与接受的功能 。数据的发送与接受是否要写在一个线程里,如果不写在一个线程里 会不会有问题
----------------解决方案--------------------------------------------------------
可以写在一个线程里啊。。但是这样就不能同时接受和发送消息了啊
如果你接受的数据很大的话,那要等他接受完了才能发送了。
不过我也是就C++的理解,JAVA我还没学到那里
[此贴子已经被作者于2007-6-11 12:56:37编辑过]
----------------解决方案--------------------------------------------------------
不会有问题,一个线程专门发数据,一个线程专门收数据.挺好的啊
----------------解决方案--------------------------------------------------------
万岁 能不能帮奴婢看看错在哪呢
----------------解决方案--------------------------------------------------------
你客户端的MainClinet函数
[CODE]new Thread(new Runnable(){
public void run() {
while(true)//这个线程需要不断的运行来接收信息,所有同样需要无限循环,其它好像都没什么错
{
String tmp = c.receive();
a1.append(tmp);
}
}
}).start();[/CODE]
----------------解决方案--------------------------------------------------------
以下是引用野蛮女人在2007-6-11 19:24:20的发言:
[attach]22350[/attach]
万岁 能不能帮奴婢看看错在哪呢
[attach]22350[/attach]
万岁 能不能帮奴婢看看错在哪呢
看了你的代码,写得不是很好
你要实现的功能其实很简单,没必要把简单的问题搞得这么复杂,用了四个类来实现
其实两个类就完全可以了
特别是在你的MyServer类里,写里很乱,
不过主要问题是,你和客户端和服务器一开始都是在等对方发东西过来,所以两方就一直卡在那里.你应该让一方先发一方先收,这样才能让客户端和服务器交互起来
----------------解决方案--------------------------------------------------------
老千,他的服务器端开始是在等别人发送消息,但是她的客户端有两个线程啊,一个线程在接收,另外一个线程可以给服务器发送数据的,而他的服务器只需要等待客户端的消息,一收到消息,马上转交给所有的客户端,以实现类似于QQ那样的聊天方式,就我的理解应该是这样的,不过我虽然不太懂JAVA,但是也觉得她的代码写得有点凌乱。
----------------解决方案--------------------------------------------------------
是啊 我的程序总是写的那么乱,一开始想的好好的可是一写就越写越乱。我也不知道是怎么回事,千里能不能指点一下啊如何做才能把程序写的更好 更清晰啊 有没有什么好书推荐一下
还有你说的一直卡在那里是什么意思啊 服务器一开始等待然后客户端发送怎么会卡在那里呢!不太理解能不能说的清楚些
----------------解决方案--------------------------------------------------------
呵 呵,写程序多了,然后自己思考的多了,就不会乱了,然后写程序就很有条理了
至于书嘛,我也没系统地看过什么书.
我觉得写CS程序的时候,线程的问题一定要搞清楚,要赋于一个线程一个确定的任务,不要在一个线程里面做很多事情,这样线程才好管理
比如,服务器起动以后,起一个线程无限循环在那里监听,监听到一个连接,就起一个新的线程去处理这个新的连接
然后客户端,建立连接以后,起一个死线程在那里一直等待服务器发回的信息,并起方法去处理,然后你发信息给服务器的线程就可以相对自由一些了,然后发信息的时候,也要记得同步,不要一个方法发了一半,另一个方法又来发了,这样就会造成服务器收到的数据不连续,也就很容易出错了
简单地一些话,希望对你有所帮助.也希望你的JAVA越学越好
----------------解决方案--------------------------------------------------------
如果我要是写会不会对以后的扩展不利呢
----------------解决方案--------------------------------------------------------