TCP協議通信補充:多線程

需求:電腦和安卓手機實現“聊天功能”

技術點:
ServerSocket和Socket編程
多線程在TCP協議中的使用

複習一下昨天的內容:
服務端ServerSocket部分:

ServerSocket ss = new ServerSocket(20000);
while(true)
{
    Socket s = ss.accept();
    OutputStream os = s.getOutputStream();
    os.write("吼吼吼".getByte("utf-8"));
    os.close();
    s.close();
}

客戶端Socket 部分:

new Thread(new Runable()
{
    public void run()
    {
        Socket socket = new Socket("192.114.1.3",20000);
        //設置超時時間
        socket.setSoTimeout(10000);
        InputStream is = socket.inputStream();
    }
});

TCP中加入多線程

服務端:
1.創建一個集合,存儲Socket
2.通過一個死循環,不斷的去接收客戶端發來的消息,如果客戶端發來消息,則給集合添加一個新的Socket,並開啓一個新的線程來操作數據。

ArrayList<Socket> socketList = new ArrayList<Socket>();
ServerSocket ss = new ServerSocket(20000);
while(true)
{
    Socket s = ss.accept();
    socketList.add(s);
    new Thread(new Runnable()
    {
        public void run()
        {
            new ServerThread(s);
        }
    });
}

ServerThread 類:

1.繼承自Runnable
2.在run方法中,寫入要操作的功能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章