使用 Java 实现一个简单的聊天程序, 实现服务器端接收到客户端发来的消息, 使用了java.net.socket包. 通过socket 实现 client — server 之间的通讯.
socket详解
环境要求:
1. windows启用telnet功能.
2. Eclipse安装必要组件
代码如下:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*
* @author yancykahn
* @vision 2.0
*/
public class Server {
private ServerSocket serverSocket;
// 端口号为port 的构造函数
public Server(int port) {
try {
serverSocket = new ServerSocket(port);
} catch (Exception e) {
e.printStackTrace();
}
}
public void start() {
try {
System.out.println("wait server connect ...");
//让服务器进入等待状态, 阻塞.
Socket socket = serverSocket.accept();
System.out.println("server connected.");
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String data = br.readLine().toString();
String name = socket.getInetAddress().getCanonicalHostName();
while(!data.equals("exit")) {
String temp = name + " : " + data + "\r\n";
System.out.println(temp);
os.write(temp.getBytes());
os.flush();
data = br.readLine().toString();
}
os.write("bye!\n".getBytes());
os.flush();
socket.close();
}catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Server server = new Server(8888);
server.start();
}
}
效果图:
1. telnet远程连接
2.连接成功
3.退出