游戏开发者社区

[ActionScript 3] java +as3 “聊天室”

查看: 16951|回复: 67

Rank: 4

威望
1 点
义气
5 点
发表于 2008-10-12 21:04:30 |显示全部楼层
声明!!!! 这不是教程 就算是我的练习把 希望大家不要笑我 给点建议  (本人比较盲目 不知道怎么走了 想做个程序员 但是有不知道如何能成为一个程序员···)
不知到这个叫不叫聊天室 毕竟太简陋了····
这个东东主要是java 做后台 as3做客户端···这样客户端就不要下载jre了

通过socket 各个网路程序(用不同语言编写) 之间就可以通信了(底层的实现都被厂商实现了)
java代码如下 由于代码简单我就不多说了 ····
mport java.io.*;
import java.net.*;
import java.util.*;
class ChatServer {
        public static final int PORT = 6666;                                                //服务器端口监听端口
        private Boolean flag = true;                                                        //循环标记
        ServerSocket ss;                                                                                                                        //服务器套接字
        public List<Socket> clientNum = new ArrayList<Socket>();                        //用于装与客服端会话(Socket)的 容器
        public List<DataInputStream> dipNum = new ArrayList<DataInputStream>();        //用于输入装流的容器
        public List<DataOutputStream>        dopNum = new ArrayList<DataOutputStream>();//用于装输出流的容器
        ChatServer() {                                                                                                                                       
                try {
                        start();
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
       
        public static void main(String[] args) {
                new ChatServer();
        }       
       
        //这个函数用接受客户端的连接                               
        public Boolean start() throws Exception {                                                                                                                               
                        ss = new ServerSocket(PORT);
                        while(flag) {
        System.out.println("waiting.....");
                                Socket socket = ss.accept();
        System.out.println("has a client connect");
                                process(socket);                                                               
                        }
                return true;
        }
       
        //对接受客户端连接后产生的Socket 进行处理
        private void process(Socket s) throws Exception {
                clientNum.add(s);                                        //向容器加入socket
                new Thread(new SocketInServer(s)).start();                 //创建一个线程与客户端的soket会话
        }
       
        //向客户端发送消息
        private void sendMessage(String msg) {                       
                for(Object i:dopNum) {
                        try {
                                ((DataOutputStream)i).writeUTF(msg);
                                ((DataOutputStream)i).flush();
                        } catch (IOException e) {
                                e.printStackTrace();
                        }
                }
        }
       
        /*****
         * 这个内部类 实现了 Runnable接口
         *        专门处理与客户端的会话
         *
         */
        class SocketInServer implements Runnable{
                DataInputStream dis;       
                Boolean flag = true;               
                Socket s;
                DataOutputStream dop;
                SocketInServer(Socket s) throws Exception {
                        this.s = s;
                        dis = new DataInputStream(s.getInputStream());
                        dop = new DataOutputStream(s.getOutputStream());
                        dopNum.add(dop);
                }

                public void run() {
                        while(flag) {
                                try {
                                        sendMessage(dis.readUTF());
                                } catch (IOException e) {
                                        try {
                                                dis.close();                                        //这几条语句非常关键
                                                dop.close();                                        //这几条语句主要释放
                                                dopNum.remove(dop);                                //流资源
                                                dipNum.remove(dis);                                //
                                                clientNum.remove(s);                                //
                                        } catch (IOException e1) {
                                                e1.printStackTrace();
                                        }
                                        flag = false;                                                //这句用于结束线程
                                }
                        }
                }
        }
}

flash代码 就跟简单了 做个界面 发送 接收就好了·····

chat.rar

337.9 KB, 下载次数: 576, 下载积分: 银子 -1 两

java as3 socket

举报

Rank: 5Rank: 5

威望
4 点
义气
5 点

AQ小生

发表于 2008-10-12 21:06:53
不错呀,支持!楼主继续努力...

举报

Rank: 7Rank: 7Rank: 7Rank: 7

威望
14 点
义气
12 点

蓝色海洋水心勋章

发表于 2008-10-12 21:23:00
变成java讲解了,嘿嘿

举报

Rank: 1

威望
1 点
义气
5 点
发表于 2008-10-18 14:25:35
java 文件编译通不过啊。

举报

Rank: 7Rank: 7Rank: 7Rank: 7

威望
19 点
义气
6 点
发表于 2008-10-18 15:11:04
收藏了。收藏了。收藏了。收藏了。

举报

Rank: 4

威望
6 点
义气
5 点
发表于 2008-10-30 11:46:29
好像很强哦~~~~~~

举报

Rank: 6Rank: 6Rank: 6

威望
1 点
义气
5 点

AQ小生

发表于 2008-10-30 11:53:11
原帖由 prowess 于 2008-10-12 21:06 发表
不错呀,支持!楼主继续努力...


加油

举报

Rank: 5Rank: 5

威望
0 点
义气
5 点
发表于 2008-10-30 15:47:57
up.......................

举报

Rank: 8Rank: 8

威望
4 点
义气
5 点
发表于 2008-10-31 08:36:06
可以发表情吗?~~~~~

举报

Rank: 5Rank: 5

威望
3 点
义气
5 点
发表于 2008-11-28 11:11:27
真的很强!唉.要学得太多.JAVA....

举报

Rank: 6Rank: 6Rank: 6

威望
1 点
义气
5 点

AQ小生

发表于 2008-11-28 14:58:13

举报

Rank: 1

威望
0 点
义气
5 点
发表于 2008-11-28 20:46:37
学习一下 。。。。。。

举报

Rank: 3Rank: 3Rank: 3

威望
0 点
义气
5 点
发表于 2008-12-27 14:10:31
学习一下,呵呵,呵呵

举报

Rank: 5Rank: 5

威望
5 点
义气
5 点
发表于 2008-12-27 15:14:11
好啊!! 不过貌似应该发在"后台技术讨论区"的说!

举报

Rank: 3Rank: 3Rank: 3

威望
0 点
义气
5 点
发表于 2008-12-27 17:40:14
强力支持!
先学习一下!~~

举报

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

关闭

江湖传闻

手机版|9RIA.com ( 京ICP备11007422号-2 

GMT+8, 2017-1-21 08:11 , Processed in 0.085955 second(s), 22 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部