效果图:
利用socket实现了简单的聊天室功能。首先要用java先写一个ServerSocket服务器
public class SocketTest {
public static void main(String[] args) {
try {
//端口号从1-65535中任选一个,一般选择较大的
ServerSocket serverSocket= new ServerSocket(12346);
//阻塞线程
Socket socket=serverSocket.accept();
System.out.println("success");
} catch (IOException e) {
e.printStackTrace();
}
}
}
上面一段代码就可以创建一个ServerSocket服务器端,在浏览器里输入本机IP再加上端口号(我的是192.168.56.1:12346),就可以在android studio里看到success,代表连接成功.(浏览器里为什么会显示无法连接,可能是因为我没有写网页的html)
但是这样还是有问题,代码里我也写了accept()会阻塞线程,要在子线程里创建ServerSocket并且accept(),然后就是聊天室功能的具体逻辑了,我在代码里会注释,下面贴出完整代码
public class SocketTest {
public static void main(String[] args) {
new ServerListener().start();
// try {
// ServerSocket serverSocket= new ServerSocket(12346);
// Socket socket=serverSocket.accept();
// System.out.println("success");
// } catch (IOException e) {
// e.printStackTrace();
// }
}
}
//监听线程
public class ServerListener extends Thread {
public void run() {
try {
ServerSocket serverSocket=new ServerSocket(12340);
while(true){
//循环监听连接
Socket socket=serverSocket.accept();
System.out.println("success");
//将socket传递给聊天线程
ChatSocket cs=new ChatSocket(socket);
cs.start();
ChatManager.getChatManager().add(cs);
}
} catch (Exception e) {
}
}
}
public class ChatSocket extends