需求:電腦和安卓手機實現“聊天功能”
技術點:
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方法中,寫入要操作的功能