首先建立服务器端程序:
1.MyServerSocket.java
package com.test.test;
public class MyServerSocket {
public static void main(String[] args) {
new ServerListener().start();
}
}
2.ServerListener.java用于监听端口连接
package com.test.test;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JOptionPane;
public class ServerListener extends Thread {
public void run() {
try {
ServerSocket serverSocket=new ServerSocket(12345);
while(true){
Socket socket=serverSocket.accept();
JOptionPane.showMessageDialog(null,"有客户端连接到了12345端口!");
new ChatSocket(socket).start();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3.ChatSocket.java
package com.test.test;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.Socket;
public class ChatSocket extends Thread {
Socket socket;
public ChatSocket(Socket s){
this.socket=s;
}
public void out(String out){
try {
socket.getOutputStream().write(out.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void run() {
int count=0;
while(true){
count++;
out("loop+"+count);
}
}
}
运行MyServerSocket.java:
打开DOS界面 输入telnet localhost 12345 显示如图:
下面点击确定:
再打开一个客户端输入指令:
可以看出每一个客户端都有一个独立的线程进行处理。