为 啥 我 的 UDPk客 户 端 无 法 收 数 据 包 呢 ?

cnfire 2004-09-19 03:45:31
我 做 了 一 个 基 于 UDP的 客 户 端 和 服 务 器 端 。大 致 过 程 如 下 : (1)客 户 端 发 一 个 数 据 到 服 务 器 端 , (2)然 后 服 务 器 在 回 发 给 客 户 端 ; (3)客 户 端 收 到 服 务 器 的 回 馈 口 再 显 示 出 来 。

现 在 (1),(2)都 没 有 问 题 了 , 就 是 (3)还 不 行 , 我 发 现 在 客 户 端 监 听 部 分 的 永 真 循 环 while(true) 好 像 就 循 环 了 一 次 , 后 面 就 不 动 。 。 。 我 的 大 概 思 路 是 : 在 main()中 实 例 化 一 个 单 独 的 线 程 来 处 理 (3)客 户 端 收 回 馈 部 分 (请 见 程 序 )

想 了 半 天 都 不 知 为 什 么 , 会 不 会 是 这 个 异 常 处 理 中 断 了 永 真 循 环 ? 还 请 大 家 帮 忙 看 看 。
谢 谢 。 。 。 。


/*线 程 处 理 部 分 */
public class MyThreadReceive extends Thread
{
public MyThreadReceive(){}
public void run()
{
try
{
DatagramSocket clientSocket = new DatagramSocket();
byte[] receiveData = new byte[1024];

while (true)//////////////////// 此 处 保 持 监 听
{
DatagramPacket receivePacket = new DatagramPacket(receiveData,
receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence = new String(receivePacket.getData());
System.out.println("FROM SEVER:"+modifiedSentence);
clientSocket.close();
}
}
catch (IOException e){}
}
}

/*主 函 数 部 分 */
public class Client extends JFrame
implements ActionListener
{
//其 余 略 ................
public static void main(String[] args) throws Exception
{
Client app = new Client();
app.addWindowListener(new MyWindowListener());

//创 建 并 启 动 一 个 监 听 线 程 , 监 听 服 务 器 发 回 的 数 据 包
MyThreadReceive ReceiveNow = new MyThreadReceive();
ReceiveNow.start();
}
}
...全文
167 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yujlyjl 2005-01-13
  • 打赏
  • 举报
回复
真是有趣真是有趣
ZhuKaka 2004-09-20
  • 打赏
  • 举报
回复
我的邮箱zhukaka@sohu.com,可以交流一下!真是有趣,连项目都一模一样!
ntzls 2004-09-19
  • 打赏
  • 举报
回复
阻塞性方法,尝试用public void setSoTimeout(int timeout)设延时。
cnfire 2004-09-19
  • 打赏
  • 举报
回复
是 啊 , 我 真 是 查 不 出 错 在 哪 。 。 。 。 还 请 大 虾 驻 足 啊 。 。 。
ZhuKaka 2004-09-19
  • 打赏
  • 举报
回复
晕啊,同病相怜!和我做的项目简直一模一样,不过我application和applet都做好了,通讯也没有问题,就是在别的机子上客户机从服务器下载之后不能和服务器通讯,就只有我一台能通讯。晕。。。

62,636

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧